diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py new file mode 100644 index 0000000000..1ef1df6a8f --- /dev/null +++ b/InvenTree/InvenTree/api_version.py @@ -0,0 +1,159 @@ +""" +InvenTree API version information +""" + + +# InvenTree API version +INVENTREE_API_VERSION = 43 + +""" +Increment this API version number whenever there is a significant change to the API that any clients need to know about + +v43 -> 2022-04-26 : https://github.com/inventree/InvenTree/pull/2875 + - Adds API detail endpoint for PartSalePrice model + - Adds API detail endpoint for PartInternalPrice model + +v42 -> 2022-04-26 : https://github.com/inventree/InvenTree/pull/2833 + - Adds variant stock information to the Part and BomItem serializers + +v41 -> 2022-04-26 + - Fixes 'variant_of' filter for Part list endpoint + +v40 -> 2022-04-19 + - Adds ability to filter StockItem list by "tracked" parameter + - This checks the serial number or batch code fields + +v39 -> 2022-04-18 + - Adds ability to filter StockItem list by "has_batch" parameter + +v38 -> 2022-04-14 : https://github.com/inventree/InvenTree/pull/2828 + - Adds the ability to include stock test results for "installed items" + +v37 -> 2022-04-07 : https://github.com/inventree/InvenTree/pull/2806 + - Adds extra stock availability information to the BomItem serializer + +v36 -> 2022-04-03 + - Adds ability to filter part list endpoint by unallocated_stock argument + +v35 -> 2022-04-01 : https://github.com/inventree/InvenTree/pull/2797 + - Adds stock allocation information to the Part API + - Adds calculated field for "unallocated_quantity" + +v34 -> 2022-03-25 + - Change permissions for "plugin list" API endpoint (now allows any authenticated user) + +v33 -> 2022-03-24 + - Adds "plugins_enabled" information to root API endpoint + +v32 -> 2022-03-19 + - Adds "parameters" detail to Part API endpoint (use ¶meters=true) + - Adds ability to filter PartParameterTemplate API by Part instance + - Adds ability to filter PartParameterTemplate API by PartCategory instance + +v31 -> 2022-03-14 + - Adds "updated" field to SupplierPriceBreakList and SupplierPriceBreakDetail API endpoints + +v30 -> 2022-03-09 + - Adds "exclude_location" field to BuildAutoAllocation API endpoint + - Allows BuildItem API endpoint to be filtered by BomItem relation + +v29 -> 2022-03-08 + - Adds "scheduling" endpoint for predicted stock scheduling information + +v28 -> 2022-03-04 + - Adds an API endpoint for auto allocation of stock items against a build order + - Ref: https://github.com/inventree/InvenTree/pull/2713 + +v27 -> 2022-02-28 + - Adds target_date field to individual line items for purchase orders and sales orders + +v26 -> 2022-02-17 + - Adds API endpoint for uploading a BOM file and extracting data + +v25 -> 2022-02-17 + - Adds ability to filter "part" list endpoint by "in_bom_for" argument + +v24 -> 2022-02-10 + - Adds API endpoint for deleting (cancelling) build order outputs + +v23 -> 2022-02-02 + - Adds API endpoints for managing plugin classes + - Adds API endpoints for managing plugin settings + +v22 -> 2021-12-20 + - Adds API endpoint to "merge" multiple stock items + +v21 -> 2021-12-04 + - Adds support for multiple "Shipments" against a SalesOrder + - Refactors process for stock allocation against a SalesOrder + +v20 -> 2021-12-03 + - Adds ability to filter POLineItem endpoint by "base_part" + - Adds optional "order_detail" to POLineItem list endpoint + +v19 -> 2021-12-02 + - Adds the ability to filter the StockItem API by "part_tree" + - Returns only stock items which match a particular part.tree_id field + +v18 -> 2021-11-15 + - Adds the ability to filter BomItem API by "uses" field + - This returns a list of all BomItems which "use" the specified part + - Includes inherited BomItem objects + +v17 -> 2021-11-09 + - Adds API endpoints for GLOBAL and USER settings objects + - Ref: https://github.com/inventree/InvenTree/pull/2275 + +v16 -> 2021-10-17 + - Adds API endpoint for completing build order outputs + +v15 -> 2021-10-06 + - Adds detail endpoint for SalesOrderAllocation model + - Allows use of the API forms interface for adjusting SalesOrderAllocation objects + +v14 -> 2021-10-05 + - Stock adjustment actions API is improved, using native DRF serializer support + - However adjustment actions now only support 'pk' as a lookup field + +v13 -> 2021-10-05 + - Adds API endpoint to allocate stock items against a BuildOrder + - Updates StockItem API with improved filtering against BomItem data + +v12 -> 2021-09-07 + - Adds API endpoint to receive stock items against a PurchaseOrder + +v11 -> 2021-08-26 + - Adds "units" field to PartBriefSerializer + - This allows units to be introspected from the "part_detail" field in the StockItem serializer + +v10 -> 2021-08-23 + - Adds "purchase_price_currency" to StockItem serializer + - Adds "purchase_price_string" to StockItem serializer + - Purchase price is now writable for StockItem serializer + +v9 -> 2021-08-09 + - Adds "price_string" to part pricing serializers + +v8 -> 2021-07-19 + - Refactors the API interface for SupplierPart and ManufacturerPart models + - ManufacturerPart objects can no longer be created via the SupplierPart API endpoint + +v7 -> 2021-07-03 + - Introduced the concept of "API forms" in https://github.com/inventree/InvenTree/pull/1716 + - API OPTIONS endpoints provide comprehensive field metedata + - Multiple new API endpoints added for database models + +v6 -> 2021-06-23 + - Part and Company images can now be directly uploaded via the REST API + +v5 -> 2021-06-21 + - Adds API interface for manufacturer part parameters + +v4 -> 2021-06-01 + - BOM items can now accept "variant stock" to be assigned against them + - Many slight API tweaks were needed to get this to work properly! + +v3 -> 2021-05-22: + - The updated StockItem "history tracking" now uses a different interface + +""" diff --git a/InvenTree/InvenTree/middleware.py b/InvenTree/InvenTree/middleware.py index a9c43c71b6..b679713b32 100644 --- a/InvenTree/InvenTree/middleware.py +++ b/InvenTree/InvenTree/middleware.py @@ -1,11 +1,8 @@ from django.shortcuts import HttpResponseRedirect from django.urls import reverse_lazy, Resolver404 -from django.db import connection from django.shortcuts import redirect from django.conf.urls import include, url import logging -import time -import operator from rest_framework.authtoken.models import Token from allauth_2fa.middleware import BaseRequire2FAMiddleware, AllauthTwoFactorMiddleware @@ -92,67 +89,6 @@ class AuthRequiredMiddleware(object): return response -class QueryCountMiddleware(object): - """ - This middleware will log the number of queries run - and the total time taken for each request (with a - status code of 200). It does not currently support - multi-db setups. - - To enable this middleware, set 'log_queries: True' in the local InvenTree config file. - - Reference: https://www.dabapps.com/blog/logging-sql-queries-django-13/ - - Note: 2020-08-15 - This is no longer used, instead we now rely on the django-debug-toolbar addon - """ - - def __init__(self, get_response): - self.get_response = get_response - - def __call__(self, request): - - t_start = time.time() - response = self.get_response(request) - t_stop = time.time() - - if response.status_code == 200: - total_time = 0 - - if len(connection.queries) > 0: - - queries = {} - - for query in connection.queries: - query_time = query.get('time') - - sql = query.get('sql').split('.')[0] - - if sql in queries: - queries[sql] += 1 - else: - queries[sql] = 1 - - if query_time is None: - # django-debug-toolbar monkeypatches the connection - # cursor wrapper and adds extra information in each - # item in connection.queries. The query time is stored - # under the key "duration" rather than "time" and is - # in milliseconds, not seconds. - query_time = float(query.get('duration', 0)) - - total_time += float(query_time) - - logger.debug('{n} queries run, {a:.3f}s / {b:.3f}s'.format( - n=len(connection.queries), - a=total_time, - b=(t_stop - t_start))) - - for x in sorted(queries.items(), key=operator.itemgetter(1), reverse=True): - print(x[0], ':', x[1]) - - return response - - url_matcher = url('', include(frontendpatterns)) diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 9688f90c12..04c9a9bc19 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -282,6 +282,7 @@ INSTALLED_APPS = [ MIDDLEWARE = CONFIG.get('middleware', [ 'django.middleware.security.SecurityMiddleware', + 'x_forwarded_for.middleware.XForwardedForMiddleware', 'user_sessions.middleware.SessionMiddleware', # db user sessions 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', @@ -545,11 +546,19 @@ if "sqlite" in db_engine: # Provide OPTIONS dict back to the database configuration dict db_config['OPTIONS'] = db_options +# Set testing options for the database +db_config['TEST'] = { + 'CHARSET': 'utf8', +} + +# Set collation option for mysql test database +if 'mysql' in db_engine: + db_config['TEST']['COLLATION'] = 'utf8_general_ci' + DATABASES = { 'default': db_config } - _cache_config = CONFIG.get("cache", {}) _cache_host = _cache_config.get("host", os.getenv("INVENTREE_CACHE_HOST")) _cache_port = _cache_config.get( @@ -662,11 +671,13 @@ LANGUAGE_CODE = CONFIG.get('language', 'en-us') # If a new language translation is supported, it must be added here LANGUAGES = [ + ('cs', _('Czech')), ('de', _('German')), ('el', _('Greek')), ('en', _('English')), ('es', _('Spanish')), ('es-mx', _('Spanish (Mexican)')), + ('fa', _('Farsi / Persian')), ('fr', _('French')), ('he', _('Hebrew')), ('hu', _('Hungarian')), @@ -676,7 +687,8 @@ LANGUAGES = [ ('nl', _('Dutch')), ('no', _('Norwegian')), ('pl', _('Polish')), - ('pt', _('Portugese')), + ('pt', _('Portuguese')), + ('pt-BR', _('Portuguese (Brazilian)')), ('ru', _('Russian')), ('sv', _('Swedish')), ('th', _('Thai')), diff --git a/InvenTree/InvenTree/static/easymde/easymde.min.css b/InvenTree/InvenTree/static/easymde/easymde.min.css new file mode 100644 index 0000000000..884f9eed9d --- /dev/null +++ b/InvenTree/InvenTree/static/easymde/easymde.min.css @@ -0,0 +1,7 @@ +/** + * easymde v2.16.1 + * Copyright Jeroen Akkerman + * @link https://github.com/ionaru/easy-markdown-editor + * @license MIT + */ +.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:0}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.EasyMDEContainer{display:block}.CodeMirror-rtl pre{direction:rtl}.EasyMDEContainer.sided--no-fullscreen{display:flex;flex-direction:row;flex-wrap:wrap}.EasyMDEContainer .CodeMirror{box-sizing:border-box;height:auto;border:1px solid #ddd;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:0;word-wrap:break-word}.EasyMDEContainer .CodeMirror-scroll{cursor:text}.EasyMDEContainer .CodeMirror-fullscreen{background:#fff;position:fixed!important;top:50px;left:0;right:0;bottom:0;height:auto;z-index:8;border-right:none!important;border-bottom-right-radius:0!important}.EasyMDEContainer .CodeMirror-sided{width:50%!important}.EasyMDEContainer.sided--no-fullscreen .CodeMirror-sided{border-right:none!important;border-bottom-right-radius:0;position:relative;flex:1 1 auto}.EasyMDEContainer .CodeMirror-placeholder{opacity:.5}.EasyMDEContainer .CodeMirror-focused .CodeMirror-selected{background:#d9d9d9}.editor-toolbar{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;padding:9px 10px;border-top:1px solid #bbb;border-left:1px solid #bbb;border-right:1px solid #bbb;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar.fullscreen{width:100%;height:50px;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen::before{width:20px;height:50px;background:-moz-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,#fff),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen::after{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(100%,#fff));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);position:fixed;top:0;right:0;margin:0;padding:0}.EasyMDEContainer.sided--no-fullscreen .editor-toolbar{width:100%}.editor-toolbar .easymde-dropdown,.editor-toolbar button{background:0 0;display:inline-block;text-align:center;text-decoration:none!important;height:30px;margin:0;padding:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar button{width:30px}.editor-toolbar button.active,.editor-toolbar button:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar button:after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar button.heading-1:after{content:"1"}.editor-toolbar button.heading-2:after{content:"2"}.editor-toolbar button.heading-3:after{content:"3"}.editor-toolbar button.heading-bigger:after{content:"▲"}.editor-toolbar button.heading-smaller:after{content:"▼"}.editor-toolbar.disabled-for-preview button:not(.no-disable){opacity:.6;pointer-events:none}@media only screen and (max-width:700px){.editor-toolbar i.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.EasyMDEContainer.sided--no-fullscreen .editor-statusbar{width:100%}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-statusbar .lines:before{content:'lines: '}.editor-statusbar .words:before{content:'words: '}.editor-statusbar .characters:before{content:'characters: '}.editor-preview-full{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7;overflow:auto;display:none;box-sizing:border-box}.editor-preview-side{position:fixed;bottom:0;width:50%;top:50px;right:0;z-index:9;overflow:auto;display:none;box-sizing:border-box;border:1px solid #ddd;word-wrap:break-word}.editor-preview-active-side{display:block}.EasyMDEContainer.sided--no-fullscreen .editor-preview-active-side{flex:1 1 auto;height:auto;position:static}.editor-preview-active{display:block}.editor-preview{padding:10px;background:#fafafa}.editor-preview>p{margin-top:0}.editor-preview pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th{border:1px solid #ddd;padding:5px}.cm-s-easymde .cm-tag{color:#63a35c}.cm-s-easymde .cm-attribute{color:#795da3}.cm-s-easymde .cm-string{color:#183691}.cm-s-easymde .cm-header-1{font-size:200%;line-height:200%}.cm-s-easymde .cm-header-2{font-size:160%;line-height:160%}.cm-s-easymde .cm-header-3{font-size:125%;line-height:125%}.cm-s-easymde .cm-header-4{font-size:110%;line-height:110%}.cm-s-easymde .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.cm-s-easymde .cm-link{color:#7f8c8d}.cm-s-easymde .cm-url{color:#aab2b3}.cm-s-easymde .cm-quote{color:#7f8c8d;font-style:italic}.editor-toolbar .easymde-dropdown{position:relative;background:linear-gradient(to bottom right,#fff 0,#fff 84%,#333 50%,#333 100%);border-radius:0;border:1px solid #fff}.editor-toolbar .easymde-dropdown:hover{background:linear-gradient(to bottom right,#fff 0,#fff 84%,#333 50%,#333 100%)}.easymde-dropdown-content{display:block;visibility:hidden;position:absolute;background-color:#f9f9f9;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);padding:8px;z-index:2;top:30px}.easymde-dropdown:active .easymde-dropdown-content,.easymde-dropdown:focus .easymde-dropdown-content,.easymde-dropdown:focus-within .easymde-dropdown-content{visibility:visible}span[data-img-src]::after{content:'';background-image:var(--bg-image);display:block;max-height:100%;max-width:100%;background-size:contain;height:0;padding-top:var(--height);width:var(--width);background-repeat:no-repeat}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)} \ No newline at end of file diff --git a/InvenTree/InvenTree/static/easymde/easymde.min.js b/InvenTree/InvenTree/static/easymde/easymde.min.js new file mode 100644 index 0000000000..56a8d3a69a --- /dev/null +++ b/InvenTree/InvenTree/static/easymde/easymde.min.js @@ -0,0 +1,7 @@ +/** + * easymde v2.16.1 + * Copyright Jeroen Akkerman + * @link https://github.com/ionaru/easy-markdown-editor + * @license MIT + */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EasyMDE=e()}}((function(){return function e(t,n,r){function i(a,l){if(!n[a]){if(!t[a]){var s="function"==typeof require&&require;if(!l&&s)return s(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[a]={exports:{}};t[a][0].call(c.exports,(function(e){return i(t[a][1][e]||e)}),c,c.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/,n=/^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/,r=/[*+-]\s/;function i(e,n){var r=n.line,i=0,o=0,a=t.exec(e.getLine(r)),l=a[1];do{var s=r+(i+=1),u=e.getLine(s),c=t.exec(u);if(c){var d=c[1],h=parseInt(a[3],10)+i-o,f=parseInt(c[3],10),p=f;if(l!==d||isNaN(f)){if(l.length>d.length)return;if(l.lengthf&&(p=h+1),e.replaceRange(u.replace(t,d+p+c[4]+c[5]),{line:s,ch:0},{line:s,ch:u.length})}}while(c)}e.commands.newlineAndIndentContinueMarkdownList=function(o){if(o.getOption("disableInput"))return e.Pass;for(var a=o.listSelections(),l=[],s=0;s\s*$/.test(p),x=!/>\s*$/.test(p);(v||x)&&o.replaceRange("",{line:u.line,ch:0},{line:u.line,ch:u.ch+1}),l[s]="\n"}else{var y=m[1],b=m[5],D=!(r.test(m[2])||m[2].indexOf(">")>=0),C=D?parseInt(m[3],10)+1+m[4]:m[2].replace("x"," ");l[s]="\n"+y+C+b,D&&i(o,u)}}o.replaceSelections(l)}})("object"==typeof n&&"object"==typeof t?e("../../lib/codemirror"):CodeMirror)},{"../../lib/codemirror":10}],7:[function(e,t,n){(function(e){"use strict";e.overlayMode=function(t,n,r){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(r){return{base:e.copyState(t,r.base),overlay:e.copyState(n,r.overlay),basePos:r.basePos,baseCur:null,overlayPos:r.overlayPos,overlayCur:null}},token:function(e,i){return(e!=i.streamSeen||Math.min(i.basePos,i.overlayPos)c);d++){var h=e.getLine(u++);l=null==l?h:l+"\n"+h}s*=2,t.lastIndex=n.ch;var f=t.exec(l);if(f){var p=l.slice(0,f.index).split("\n"),m=f[0].split("\n"),g=n.line+p.length-1,v=p[p.length-1].length;return{from:r(g,v),to:r(g+m.length-1,1==m.length?v+m[0].length:m[m.length-1].length),match:f}}}}function s(e,t,n){for(var r,i=0;i<=e.length;){t.lastIndex=i;var o=t.exec(e);if(!o)break;var a=o.index+o[0].length;if(a>e.length-n)break;(!r||a>r.index+r[0].length)&&(r=o),i=o.index+1}return r}function u(e,t,n){t=i(t,"g");for(var o=n.line,a=n.ch,l=e.firstLine();o>=l;o--,a=-1){var u=e.getLine(o),c=s(u,t,a<0?0:u.length-a);if(c)return{from:r(o,c.index),to:r(o,c.index+c[0].length),match:c}}}function c(e,t,n){if(!o(t))return u(e,t,n);t=i(t,"gm");for(var a,l=1,c=e.getLine(n.line).length-n.ch,d=n.line,h=e.firstLine();d>=h;){for(var f=0;f=h;f++){var p=e.getLine(d--);a=null==a?p:p+"\n"+a}l*=2;var m=s(a,t,c);if(m){var g=a.slice(0,m.index).split("\n"),v=m[0].split("\n"),x=d+g.length,y=g[g.length-1].length;return{from:r(x,y),to:r(x+v.length-1,1==v.length?y+v[0].length:v[v.length-1].length),match:m}}}}function d(e,t,n,r){if(e.length==t.length)return n;for(var i=0,o=n+Math.max(0,e.length-t.length);;){if(i==o)return i;var a=i+o>>1,l=r(e.slice(0,a)).length;if(l==n)return a;l>n?o=a:i=a+1}}function h(e,i,o,a){if(!i.length)return null;var l=a?t:n,s=l(i).split(/\r|\n\r?/);e:for(var u=o.line,c=o.ch,h=e.lastLine()+1-s.length;u<=h;u++,c=0){var f=e.getLine(u).slice(c),p=l(f);if(1==s.length){var m=p.indexOf(s[0]);if(-1==m)continue e;return o=d(f,p,m,l)+c,{from:r(u,d(f,p,m,l)+c),to:r(u,d(f,p,m+s[0].length,l)+c)}}var g=p.length-s[0].length;if(p.slice(g)==s[0]){for(var v=1;v=h;u--,c=-1){var f=e.getLine(u);c>-1&&(f=f.slice(0,c));var p=l(f);if(1==s.length){var m=p.lastIndexOf(s[0]);if(-1==m)continue e;return{from:r(u,d(f,p,m,l)),to:r(u,d(f,p,m+s[0].length,l))}}var g=s[s.length-1];if(p.slice(0,g.length)==g){var v=1;for(o=u-s.length+1;v(this.doc.getLine(n.line)||"").length&&(n.ch=0,n.line++)),0!=e.cmpPos(n,this.doc.clipPos(n))))return this.atOccurrence=!1;var i=this.matches(t,n);if(this.afterEmptyMatch=i&&0==e.cmpPos(i.from,i.to),i)return this.pos=i,this.atOccurrence=!0,this.pos.match||!0;var o=r(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:o,to:o},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var i=e.splitLines(t);this.doc.replaceRange(i,this.pos.from,this.pos.to,n),this.pos.to=r(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",(function(e,t,n){return new p(this.doc,e,t,n)})),e.defineDocExtension("getSearchCursor",(function(e,t,n){return new p(this,e,t,n)})),e.defineExtension("selectMatches",(function(t,n){for(var r=[],i=this.getSearchCursor(t,this.getCursor("from"),n);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor("to"))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)}))})("object"==typeof n&&"object"==typeof t?e("../../lib/codemirror"):CodeMirror)},{"../../lib/codemirror":10}],9:[function(e,t,n){(function(e){"use strict";function t(e){e.state.markedSelection&&e.operation((function(){!function(e){if(!e.somethingSelected())return a(e);if(e.listSelections().length>1)return l(e);var t=e.getCursor("start"),n=e.getCursor("end"),r=e.state.markedSelection;if(!r.length)return o(e,t,n);var s=r[0].find(),u=r[r.length-1].find();if(!s||!u||n.line-t.line<=8||i(t,u.to)>=0||i(n,s.from)<=0)return l(e);for(;i(t,s.from)>0;)r.shift().clear(),s=r[0].find();for(i(t,s.from)<0&&(s.to.line-t.line<8?(r.shift().clear(),o(e,t,s.to,0)):o(e,t,s.from,0));i(n,u.to)<0;)r.pop().clear(),u=r[r.length-1].find();i(n,u.to)>0&&(n.line-u.from.line<8?(r.pop().clear(),o(e,u.from,n)):o(e,u.to,n))}(e)}))}function n(e){e.state.markedSelection&&e.state.markedSelection.length&&e.operation((function(){a(e)}))}e.defineOption("styleSelectedText",!1,(function(r,i,o){var s=o&&o!=e.Init;i&&!s?(r.state.markedSelection=[],r.state.markedSelectionStyle="string"==typeof i?i:"CodeMirror-selectedtext",l(r),r.on("cursorActivity",t),r.on("change",n)):!i&&s&&(r.off("cursorActivity",t),r.off("change",n),a(r),r.state.markedSelection=r.state.markedSelectionStyle=null)}));var r=e.Pos,i=e.cmpPos;function o(e,t,n,o){if(0!=i(t,n))for(var a=e.state.markedSelection,l=e.state.markedSelectionStyle,s=t.line;;){var u=s==t.line?t:r(s,0),c=s+8,d=c>=n.line,h=d?n:r(c,0),f=e.markText(u,h,{className:l});if(null==o?a.push(f):a.splice(o++,0,f),d)break;s=c}}function a(e){for(var t=e.state.markedSelection,n=0;n2),g=/Android/.test(e),v=m||g||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),x=m||/Mac/.test(t),y=/\bCrOS\b/.test(e),b=/win/i.test(t),D=d&&e.match(/Version\/(\d*\.\d*)/);D&&(D=Number(D[1])),D&&D>=15&&(d=!1,s=!0);var C=x&&(u||d&&(null==D||D<12.11)),w=n||a&&l>=9;function k(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var S,F=function(e,t){var n=e.className,r=k(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function A(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function E(e,t){return A(e).appendChild(t)}function T(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return a+(t-o);a+=l-o,a+=n-a%n,o=l+1}}m?I=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(I=function(e){try{e.select()}catch(e){}});var P=function(){this.id=null,this.f=null,this.time=0,this.handler=z(this.onTimeout,this)};function _(e,t){for(var n=0;n=t)return r+Math.min(a,t-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=t)return r}}var G=[""];function V(e){for(;G.length<=e;)G.push(X(G)+" ");return G[e]}function X(e){return e[e.length-1]}function K(e,t){for(var n=[],r=0;r"€"&&(e.toUpperCase()!=e.toLowerCase()||Q.test(e))}function ee(e,t){return t?!!(t.source.indexOf("\\w")>-1&&J(e))||t.test(e):J(e)}function te(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function re(e){return e.charCodeAt(0)>=768&&ne.test(e)}function ie(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}var ae=null;function le(e,t,n){var r;ae=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:ae=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:ae=i)}return null!=r?r:ae}var se=function(){var e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,t=/[stwN]/,n=/[LRr]/,r=/[Lb1n]/,i=/[1n]/;function o(e,t,n){this.level=e,this.from=t,this.to=n}return function(a,l){var s="ltr"==l?"L":"R";if(0==a.length||"ltr"==l&&!e.test(a))return!1;for(var u,c=a.length,d=[],h=0;h-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function pe(e,t){var n=he(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function xe(e){e.prototype.on=function(e,t){de(this,e,t)},e.prototype.off=function(e,t){fe(this,e,t)}}function ye(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function be(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function De(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Ce(e){ye(e),be(e)}function we(e){return e.target||e.srcElement}function ke(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),x&&e.ctrlKey&&1==t&&(t=3),t}var Se,Fe,Ae=function(){if(a&&l<9)return!1;var e=T("div");return"draggable"in e||"dragDrop"in e}();function Ee(e){if(null==Se){var t=T("span","​");E(e,T("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Se=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&l<8))}var n=Se?T("span","​"):T("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Te(e){if(null!=Fe)return Fe;var t=E(e,document.createTextNode("AخA")),n=S(t,0,1).getBoundingClientRect(),r=S(t,1,2).getBoundingClientRect();return A(e),!(!n||n.left==n.right)&&(Fe=r.right-n.right<3)}var Le,Me=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Be=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Ne="oncopy"in(Le=T("div"))||(Le.setAttribute("oncopy","return;"),"function"==typeof Le.oncopy),Oe=null;var Ie={},ze={};function He(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Ie[e]=t}function Re(e){if("string"==typeof e&&ze.hasOwnProperty(e))e=ze[e];else if(e&&"string"==typeof e.name&&ze.hasOwnProperty(e.name)){var t=ze[e.name];"string"==typeof t&&(t={name:t}),(e=Y(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Re("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Re("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Pe(e,t){t=Re(t);var n=Ie[t.name];if(!n)return Pe(e,"text/plain");var r=n(e,t);if(_e.hasOwnProperty(t.name)){var i=_e[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}var _e={};function We(e,t){H(t,_e.hasOwnProperty(e)?_e[e]:_e[e]={})}function je(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function qe(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Ue(e,t,n){return!e.startState||e.startState(t,n)}var $e=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Ge(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t=e.first&&tn?et(n,Ge(e,n).text.length):function(e,t){var n=e.ch;return null==n||n>t?et(e.line,t):n<0?et(e.line,0):e}(t,Ge(e,t.line).text.length)}function st(e,t){for(var n=[],r=0;r=this.string.length},$e.prototype.sol=function(){return this.pos==this.lineStart},$e.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},$e.prototype.next=function(){if(this.post},$e.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},$e.prototype.skipToEnd=function(){this.pos=this.string.length},$e.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},$e.prototype.backUp=function(e){this.pos-=e},$e.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},$e.prototype.current=function(){return this.string.slice(this.start,this.pos)},$e.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},$e.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},$e.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ut=function(e,t){this.state=e,this.lookAhead=t},ct=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function dt(e,t,n,r){var i=[e.state.modeGen],o={};bt(e,t.text,e.doc.mode,n,(function(e,t){return i.push(e,t)}),o,r);for(var a=n.state,l=function(r){n.baseTokens=i;var l=e.state.overlays[r],s=1,u=0;n.state=!0,bt(e,t.text,l.mode,n,(function(e,t){for(var n=s;ue&&i.splice(s,1,e,i[s+1],r),s+=2,u=Math.min(e,r)}if(t)if(l.opaque)i.splice(n,s-n,e,"overlay "+t),s=n+2;else for(;ne.options.maxHighlightLength&&je(e.doc.mode,r.state),o=dt(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function ft(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new ct(r,!0,t);var o=function(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=Ge(o,l-1),u=s.stateAfter;if(u&&(!n||l+(u instanceof ut?u.lookAhead:0)<=o.modeFrontier))return l;var c=R(s.text,null,e.options.tabSize);(null==i||r>c)&&(i=l-1,r=c)}return i}(e,t,n),a=o>r.first&&Ge(r,o-1).stateAfter,l=a?ct.fromSaved(r,a,o):new ct(r,Ue(r.mode),o);return r.iter(o,t,(function(n){pt(e,n.text,l);var r=l.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&rt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}ct.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ct.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},ct.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ct.fromSaved=function(e,t,n){return t instanceof ut?new ct(e,je(e.mode,t.state),n,t.lookAhead):new ct(e,je(e.mode,t),n)},ct.prototype.save=function(e){var t=!1!==e?je(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ut(t,this.maxLookAhead):t};var vt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function xt(e,t,n,r){var i,o,a=e.doc,l=a.mode,s=Ge(a,(t=lt(a,t)).line),u=ft(e,t.line,n),c=new $e(s.text,e.options.tabSize,u);for(r&&(o=[]);(r||c.pose.options.maxHighlightLength?(l=!1,a&&pt(e,t,r,d.pos),d.pos=t.length,s=null):s=yt(gt(n,d,r.state,h),o),h){var f=h[0].name;f&&(s="m-"+(s?f+" "+s:f))}if(!l||c!=s){for(;u=t:o.to>t);(r||(r=[])).push(new wt(a,o.from,l?null:o.to))}}return r}(n,i,a),s=function(e,t,n){var r;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from0&&l)for(var y=0;yt)&&(!n||Bt(n,o.marker)<0)&&(n=o.marker)}return n}function Ht(e,t,n,r,i){var o=Ge(e,t),a=Ct&&o.markedSpans;if(a)for(var l=0;l=0&&d<=0||c<=0&&d>=0)&&(c<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?tt(u.to,n)>=0:tt(u.to,n)>0)||c>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?tt(u.from,r)<=0:tt(u.from,r)<0)))return!0}}}function Rt(e){for(var t;t=Ot(e);)e=t.find(-1,!0).line;return e}function Pt(e,t){var n=Ge(e,t),r=Rt(n);return n==r?t:Ze(r)}function _t(e,t){if(t>e.lastLine())return t;var n,r=Ge(e,t);if(!Wt(e,r))return t;for(;n=It(r);)r=n.find(1,!0).line;return Ze(r)+1}function Wt(e,t){var n=Ct&&t.markedSpans;if(n)for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)}))}var Gt=function(e,t,n){this.text=e,Tt(this,t),this.height=n?n(this):1};function Vt(e){e.parent=null,Et(e)}Gt.prototype.lineNo=function(){return Ze(this)},xe(Gt);var Xt={},Kt={};function Zt(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?Kt:Xt;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function Yt(e,t){var n=L("span",null,null,s?"padding-right: .1px":null),r={pre:L("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0,r.addToken=Jt,Te(e.display.measure)&&(a=ue(o,e.doc.direction))&&(r.addToken=en(r.addToken,a)),r.map=[],nn(o,r,ht(e,o,t!=e.display.externalMeasured&&Ze(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=O(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=O(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Ee(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(s){var l=r.content.lastChild;(/\bcm-tab\b/.test(l.className)||l.querySelector&&l.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return pe(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=O(r.pre.className,r.textClass||"")),r}function Qt(e){var t=T("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Jt(e,t,n,r,i,o,s){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;iu&&d.from<=u);h++);if(d.to>=c)return e(n,r,i,o,a,l,s);e(n,r.slice(0,d.to-u),i,o,null,l,s),o=null,r=r.slice(d.to-u),u=d.to}}}function tn(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function nn(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,l,s,u,c,d,h,f=i.length,p=0,m=1,g="",v=0;;){if(v==p){s=u=c=l="",h=null,d=null,v=1/0;for(var x=[],y=void 0,b=0;bp||C.collapsed&&D.to==p&&D.from==p)){if(null!=D.to&&D.to!=p&&v>D.to&&(v=D.to,u=""),C.className&&(s+=" "+C.className),C.css&&(l=(l?l+";":"")+C.css),C.startStyle&&D.from==p&&(c+=" "+C.startStyle),C.endStyle&&D.to==v&&(y||(y=[])).push(C.endStyle,D.to),C.title&&((h||(h={})).title=C.title),C.attributes)for(var w in C.attributes)(h||(h={}))[w]=C.attributes[w];C.collapsed&&(!d||Bt(d.marker,C)<0)&&(d=D)}else D.from>p&&v>D.from&&(v=D.from)}if(y)for(var k=0;k=f)break;for(var F=Math.min(f,v);;){if(g){var A=p+g.length;if(!d){var E=A>F?g.slice(0,F-p):g;t.addToken(t,E,a?a+s:s,c,p+E.length==v?u:"",l,h)}if(A>=F){g=g.slice(F-p),p=F;break}p=A,c=""}g=i.slice(o,o=n[m++]),a=Zt(n[m++],t.cm.options)}}else for(var T=1;Tn)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}}function Ln(e,t,n,r){return Nn(e,Bn(e,t),n,r)}function Mn(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&t2&&o.push((s.bottom+u.top)/2-n.top)}}o.push(n.bottom-n.top)}}(e,t.view,t.rect),t.hasHeights=!0),o=function(e,t,n,r){var i,o=zn(t.map,n,r),s=o.node,u=o.start,c=o.end,d=o.collapse;if(3==s.nodeType){for(var h=0;h<4;h++){for(;u&&re(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c1}(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}(e.display.measure,i))}else{var f;u>0&&(d=r="right"),i=e.options.lineWrapping&&(f=s.getClientRects()).length>1?f["right"==r?f.length-1:0]:s.getBoundingClientRect()}if(a&&l<9&&!u&&(!i||!i.left&&!i.right)){var p=s.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+ir(e.display),top:p.top,bottom:p.bottom}:In}for(var m=i.top-t.rect.top,g=i.bottom-t.rect.top,v=(m+g)/2,x=t.view.measure.heights,y=0;yt)&&(i=(o=s-l)-1,t>=s&&(a="right")),null!=i){if(r=e[u+2],l==s&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)r=e[2+(u-=3)],a="left";if("right"==n&&i==s-l)for(;u=0&&(n=e[i]).left==n.right;i--);return n}function Rn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=r.text.length?(s=r.text.length,u="before"):s<=0&&(s=0,u="after"),!l)return a("before"==u?s-1:s,"before"==u);function c(e,t,n){return a(n?e-1:e,1==l[t].level!=n)}var d=le(l,s,u),h=ae,f=c(s,d,"before"==u);return null!=h&&(f.other=c(s,h,"before"!=u)),f}function Xn(e,t){var n=0;t=lt(e.doc,t),e.options.lineWrapping||(n=ir(e.display)*t.ch);var r=Ge(e.doc,t.line),i=qt(r)+wn(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Kn(e,t,n,r,i){var o=et(e,t,n);return o.xRel=i,r&&(o.outside=r),o}function Zn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Kn(r.first,0,null,-1,-1);var i=Ye(r,n),o=r.first+r.size-1;if(i>o)return Kn(r.first+r.size-1,Ge(r,o).text.length,null,1,1);t<0&&(t=0);for(var a=Ge(r,i);;){var l=er(e,a,i,t,n),s=zt(a,l.ch+(l.xRel>0||l.outside>0?1:0));if(!s)return l;var u=s.find(1);if(u.line==i)return u;a=Ge(r,i=u.line)}}function Yn(e,t,n,r){r-=qn(t);var i=t.text.length,o=oe((function(t){return Nn(e,n,t-1).bottom<=r}),i,0);return{begin:o,end:i=oe((function(t){return Nn(e,n,t).top>r}),o,i)}}function Qn(e,t,n,r){return n||(n=Bn(e,t)),Yn(e,t,n,Un(e,t,Nn(e,n,r),"line").top)}function Jn(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function er(e,t,n,r,i){i-=qt(t);var o=Bn(e,t),a=qn(t),l=0,s=t.text.length,u=!0,c=ue(t,e.doc.direction);if(c){var d=(e.options.lineWrapping?nr:tr)(e,t,n,o,c,r,i);l=(u=1!=d.level)?d.from:d.to-1,s=u?d.to:d.from-1}var h,f,p=null,m=null,g=oe((function(t){var n=Nn(e,o,t);return n.top+=a,n.bottom+=a,!!Jn(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(p=t,m=n),!0)}),l,s),v=!1;if(m){var x=r-m.left=b.bottom?1:0}return Kn(n,g=ie(t.text,g,1),f,v,r-h)}function tr(e,t,n,r,i,o,a){var l=oe((function(l){var s=i[l],u=1!=s.level;return Jn(Vn(e,et(n,u?s.to:s.from,u?"before":"after"),"line",t,r),o,a,!0)}),0,i.length-1),s=i[l];if(l>0){var u=1!=s.level,c=Vn(e,et(n,u?s.from:s.to,u?"after":"before"),"line",t,r);Jn(c,o,a,!0)&&c.top>a&&(s=i[l-1])}return s}function nr(e,t,n,r,i,o,a){var l=Yn(e,t,r,a),s=l.begin,u=l.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,d=null,h=0;h=u||f.to<=s)){var p=Nn(e,r,1!=f.level?Math.min(u,f.to)-1:Math.max(s,f.from)).right,m=pm)&&(c=f,d=m)}}return c||(c=i[i.length-1]),c.fromu&&(c={from:c.from,to:u,level:c.level}),c}function rr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==On){On=T("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)On.appendChild(document.createTextNode("x")),On.appendChild(T("br"));On.appendChild(document.createTextNode("x"))}E(e.measure,On);var n=On.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),A(e.measure),n||1}function ir(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=T("span","xxxxxxxxxx"),n=T("pre",[t],"CodeMirror-line-like");E(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function or(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var l=e.display.gutterSpecs[a].className;n[l]=o.offsetLeft+o.clientLeft+i,r[l]=o.clientWidth}return{fixedPos:ar(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function ar(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function lr(e){var t=rr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/ir(e.display)-3);return function(i){if(Wt(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(s=Ge(e.doc,u.line).text).length==u.ch){var c=R(s,s.length,e.options.tabSize)-s.length;u=et(u.line,Math.max(0,Math.round((o-Sn(e.display).left)/ir(e.display))-c))}return u}function cr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ct&&Pt(e.doc,t)i.viewFrom?fr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)fr(e);else if(t<=i.viewFrom){var o=pr(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):fr(e)}else if(n>=i.viewTo){var a=pr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):fr(e)}else{var l=pr(e,t,t,-1),s=pr(e,n,n+r,1);l&&s?(i.view=i.view.slice(0,l.index).concat(on(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=r):fr(e)}var u=i.externalMeasured;u&&(n=i.lineN&&t=r.viewTo)){var o=r.view[cr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==_(a,n)&&a.push(n)}}}function fr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function pr(e,t,n,r){var i,o=cr(e,t),a=e.display.view;if(!Ct||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var l=e.display.viewFrom,s=0;s0){if(o==a.length-1)return null;i=l+a[o].size-t,o++}else i=l-t;t+=i,n+=i}for(;Pt(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function mr(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||s.to().line0?a:e.defaultCharWidth())+"px"}if(r.other){var l=n.appendChild(T("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));l.style.display="",l.style.left=r.other.left+"px",l.style.top=r.other.top+"px",l.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function yr(e,t){return e.top-t.top||e.left-t.left}function br(e,t,n){var r=e.display,i=e.doc,o=document.createDocumentFragment(),a=Sn(e.display),l=a.left,s=Math.max(r.sizerWidth,An(e)-r.sizer.offsetLeft)-a.right,u="ltr"==i.direction;function c(e,t,n,r){t<0&&(t=0),t=Math.round(t),r=Math.round(r),o.appendChild(T("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?s-e:n)+"px;\n height: "+(r-t)+"px"))}function d(t,n,r){var o,a,d=Ge(i,t),h=d.text.length;function f(n,r){return Gn(e,et(t,n),"div",d,r)}function p(t,n,r){var i=Qn(e,d,null,t),o="ltr"==n==("after"==r)?"left":"right";return f("after"==r?i.begin:i.end-(/\s/.test(d.text.charAt(i.end-1))?2:1),o)[o]}var m=ue(d,i.direction);return function(e,t,n,r){if(!e)return r(t,n,"ltr",0);for(var i=!1,o=0;ot||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(t,n,"ltr")}(m,n||0,null==r?h:r,(function(e,t,i,d){var g="ltr"==i,v=f(e,g?"left":"right"),x=f(t-1,g?"right":"left"),y=null==n&&0==e,b=null==r&&t==h,D=0==d,C=!m||d==m.length-1;if(x.top-v.top<=3){var w=(u?b:y)&&C,k=(u?y:b)&&D?l:(g?v:x).left,S=w?s:(g?x:v).right;c(k,v.top,S-k,v.bottom)}else{var F,A,E,T;g?(F=u&&y&&D?l:v.left,A=u?s:p(e,i,"before"),E=u?l:p(t,i,"after"),T=u&&b&&C?s:x.right):(F=u?p(e,i,"before"):l,A=!u&&y&&D?s:v.right,E=!u&&b&&C?l:x.left,T=u?p(t,i,"after"):s),c(F,v.top,A-F,v.bottom),v.bottom0?t.blinker=setInterval((function(){e.hasFocus()||Sr(e),t.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Cr(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||kr(e))}function wr(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&Sr(e))}),100)}function kr(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(pe(e,"focus",e,t),e.state.focused=!0,N(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),s&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),Dr(e))}function Sr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(pe(e,"blur",e,t),e.state.focused=!1,F(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Fr(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t.scroller.getBoundingClientRect().top),i=t.lineDiv.getBoundingClientRect().top,o=0,s=0;s.005||m<-.005)&&(ie.display.sizerWidth){var v=Math.ceil(h/ir(e.display));v>e.display.maxLineLength&&(e.display.maxLineLength=v,e.display.maxLine=u.line,e.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(t.scroller.scrollTop+=o)}function Ar(e){if(e.widgets)for(var t=0;t=a&&(o=Ye(t,qt(Ge(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function Tr(e,t){var n=e.display,r=rr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=En(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+kn(n),s=t.topl-r;if(t.topi+o){var c=Math.min(t.top,(u?l:t.bottom)-o);c!=i&&(a.scrollTop=c)}var d=e.options.fixedGutter?0:n.gutters.offsetWidth,h=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft-d,f=An(e)-n.gutters.offsetWidth,p=t.right-t.left>f;return p&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.leftf+h-3&&(a.scrollLeft=t.right+(p?0:10)-f),a}function Lr(e,t){null!=t&&(Nr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Mr(e){Nr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Br(e,t,n){null==t&&null==n||Nr(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Nr(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Or(e,Xn(e,t.from),Xn(e,t.to),t.margin))}function Or(e,t,n,r){var i=Tr(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Br(e,i.scrollLeft,i.scrollTop)}function Ir(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||si(e,{top:t}),zr(e,t,!0),n&&si(e),ri(e,100))}function zr(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Hr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,di(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Rr(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+kn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Fn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var Pr=function(e,t,n){this.cm=n;var r=this.vert=T("div",[T("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=T("div",[T("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,e(r),e(i),de(r,"scroll",(function(){r.clientHeight&&t(r.scrollTop,"vertical")})),de(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&l<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Pr.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},Pr.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Pr.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Pr.prototype.zeroWidthHack=function(){var e=x&&!f?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new P,this.disableVert=new P},Pr.prototype.enableZeroWidthBar=function(e,t,n){e.style.pointerEvents="auto",t.set(1e3,(function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}))},Pr.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var _r=function(){};function Wr(e,t){t||(t=Rr(e));var n=e.display.barWidth,r=e.display.barHeight;jr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Fr(e),jr(e,Rr(e)),n=e.display.barWidth,r=e.display.barHeight}function jr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}_r.prototype.update=function(){return{bottom:0,right:0}},_r.prototype.setScrollLeft=function(){},_r.prototype.setScrollTop=function(){},_r.prototype.clear=function(){};var qr={native:Pr,null:_r};function Ur(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&F(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new qr[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),de(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,n){"horizontal"==n?Hr(e,t):Ir(e,t)}),e),e.display.scrollbars.addClass&&N(e.display.wrapper,e.display.scrollbars.addClass)}var $r=0;function Gr(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++$r,markArrays:null},t=e.curOp,an?an.ops.push(t):t.ownsGroup=an={ops:[t],delayedCallbacks:[]}}function Vr(e){var t=e.curOp;t&&function(e,t){var n=e.ownsGroup;if(n)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new oi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Kr(e){e.updatedDisplay=e.mustUpdate&&ai(e.cm,e.update)}function Zr(e){var t=e.cm,n=t.display;e.updatedDisplay&&Fr(t),e.barMeasure=Rr(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Ln(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Fn(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-An(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function Yr(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft1&&(a=!0)),null!=u.scrollLeft&&(Hr(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}(t,lt(r,e.scrollToPos.from),lt(r,e.scrollToPos.to),e.scrollToPos.margin);!function(e,t){if(!me(e,"scrollCursorIntoView")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null;if(t.top+r.top<0?i=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=T("div","​",null,"position: absolute;\n top: "+(t.top-n.viewOffset-wn(e.display))+"px;\n height: "+(t.bottom-t.top+Fn(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,i)}var o=e.maybeHiddenMarkers,a=e.maybeUnhiddenMarkers;if(o)for(var l=0;l=e.display.viewTo)){var n=+new Date+e.options.workTime,r=ft(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(r.line>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength?je(t.mode,r.state):null,s=dt(e,o,r,!0);l&&(r.state=l),o.styles=s.styles;var u=o.styleClasses,c=s.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var d=!a||a.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),h=0;!d&&hn)return ri(e,e.options.workDelay),!0})),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Jr(e,(function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==mr(e))return!1;hi(e)&&(fr(e),t.dims=or(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Ct&&(o=Pt(e.doc,o),a=_t(e.doc,a));var l=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;!function(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=on(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=on(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,cr(e,n)))),r.viewTo=n}(e,o,a),n.viewOffset=qt(Ge(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var u=mr(e);if(!l&&0==u&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=function(e){if(e.hasFocus())return null;var t=B();if(!t||!M(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&M(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}(e);return u>4&&(n.lineDiv.style.display="none"),function(e,t,n){var r=e.display,i=e.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function l(t){var n=t.nextSibling;return s&&x&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var u=r.view,c=r.viewFrom,d=0;d-1&&(f=!1),cn(e,h,c,n)),f&&(A(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(Je(e.options,c)))),a=h.node.nextSibling}else{var p=vn(e,h,c,n);o.insertBefore(p,a)}c+=h.size}for(;a;)a=l(a)}(e,n.updateLineNumbers,t.dims),u>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,function(e){if(e&&e.activeElt&&e.activeElt!=B()&&(e.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(e.activeElt.nodeName)&&e.anchorNode&&M(document.body,e.anchorNode)&&M(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}(c),A(n.cursorDiv),A(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,l&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,ri(e,400)),n.updateLineNumbers=null,!0}function li(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=An(e))r&&(t.visible=Er(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+kn(e.display)-En(e),n.top)}),t.visible=Er(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!ai(e,t))break;Fr(e);var i=Rr(e);gr(e),Wr(e,i),ci(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function si(e,t){var n=new oi(e,t);if(ai(e,n)){Fr(e),li(e,n);var r=Rr(e);gr(e),Wr(e,r),ci(e,r),n.finish()}}function ui(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",sn(e,"gutterChanged",e)}function ci(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Fn(e)+"px"}function di(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=ar(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;au.clientWidth,h=u.scrollHeight>u.clientHeight;if(i&&c||o&&h){if(o&&x&&s)e:for(var f=t.target,p=l.view;f!=u;f=f.parentNode)for(var m=0;m=0&&tt(e,r.to())<=0)return n}return-1};var wi=function(e,t){this.anchor=e,this.head=t};function ki(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort((function(e,t){return tt(e.from(),t.from())})),n=_(t,i);for(var o=1;o0:s>=0){var u=ot(l.from(),a.from()),c=it(l.to(),a.to()),d=l.empty()?a.from()==a.head:l.from()==l.head;o<=n&&--n,t.splice(--o,2,new wi(d?c:u,d?u:c))}}return new Ci(t,n)}function Si(e,t){return new Ci([new wi(e,t||e)],0)}function Fi(e){return e.text?et(e.from.line+e.text.length-1,X(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ai(e,t){if(tt(e,t.from)<0)return e;if(tt(e,t.to)<=0)return Fi(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Fi(t).ch-t.to.ch),et(n,r)}function Ei(e,t){for(var n=[],r=0;r1&&e.remove(l.line+1,p-1),e.insert(l.line+1,v)}sn(e,"change",e,t)}function Oi(e,t,n){!function e(r,i,o){if(r.linked)for(var a=0;al-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(Pi(e.done),X(e.done)):e.done.length&&!X(e.done).ranges?X(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),X(e.done)):void 0}(i,i.lastOp==r)))a=X(o.changes),0==tt(t.from,t.to)&&0==tt(t.from,a.to)?a.to=Fi(t):o.changes.push(Ri(e,t));else{var s=X(i.done);for(s&&s.ranges||ji(e.sel,i.done),o={changes:[Ri(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=l,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||pe(e,"historyAdded")}function Wi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,X(i.done),t))?i.done[i.done.length-1]=t:ji(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Pi(i.undone)}function ji(e,t){var n=X(t);n&&n.ranges&&n.equals(e)||t.push(e)}function qi(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),(function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o}))}function Ui(e){if(!e)return null;for(var t,n=0;n-1&&(X(l)[d]=u[d],delete u[d])}}}return r}function Vi(e,t,n,r){if(r){var i=e.anchor;if(n){var o=tt(t,i)<0;o!=tt(n,i)<0?(i=t,t=n):o!=tt(t,n)<0&&(t=n)}return new wi(i,t)}return new wi(n||t,t)}function Xi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Ji(e,new Ci([Vi(e.sel.primary(),t,n,i)],0),r)}function Ki(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:l.to>t.ch))){if(i&&(pe(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(n){var d=s.find(r<0?1:-1),h=void 0;if((r<0?c:u)&&(d=ao(e,d,-r,d&&d.line==t.line?o:null)),d&&d.line==t.line&&(h=tt(d,n))&&(r<0?h<0:h>0))return io(e,d,t,r,i)}var f=s.find(r<0?-1:1);return(r<0?u:c)&&(f=ao(e,f,r,f.line==t.line?o:null)),f?io(e,f,t,r,i):null}}return t}function oo(e,t,n,r,i){var o=r||1,a=io(e,t,n,o,i)||!i&&io(e,t,n,o,!0)||io(e,t,n,-o,i)||!i&&io(e,t,n,-o,!0);return a||(e.cantEdit=!0,et(e.first,0))}function ao(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?lt(e,et(t.line-1)):null:n>0&&t.ch==(r||Ge(e,t.line)).text.length?t.line0)){var c=[s,1],d=tt(u.from,l.from),h=tt(u.to,l.to);(d<0||!a.inclusiveLeft&&!d)&&c.push({from:u.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&c.push({from:l.to,to:u.to}),i.splice.apply(i,c),s+=c.length-3}}return i}(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)co(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else co(e,t)}}function co(e,t){if(1!=t.text.length||""!=t.text[0]||0!=tt(t.from,t.to)){var n=Ei(e,t);_i(e,t,n,e.cm?e.cm.curOp.id:NaN),po(e,t,n,Ft(e,t));var r=[];Oi(e,(function(e,n){n||-1!=_(r,e.history)||(xo(e.history,t),r.push(e.history)),po(e,t,null,Ft(e,t))}))}}function ho(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var i,o=e.history,a=e.sel,l="undo"==t?o.done:o.undone,s="undo"==t?o.undone:o.done,u=0;u=0;--f){var p=h(f);if(p)return p.v}}}}function fo(e,t){if(0!=t&&(e.first+=t,e.sel=new Ci(K(e.sel.ranges,(function(e){return new wi(et(e.anchor.line+t,e.anchor.ch),et(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){dr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.lineo&&(t={from:t.from,to:et(o,Ge(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ve(e,t.from,t.to),n||(n=Ei(e,t)),e.cm?function(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=Ze(Rt(Ge(r,o.line))),r.iter(s,a.line+1,(function(e){if(e==i.maxLine)return l=!0,!0})));r.sel.contains(t.from,t.to)>-1&&ge(e);Ni(r,t,n,lr(e)),e.options.lineWrapping||(r.iter(s,o.line+t.text.length,(function(e){var t=Ut(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)})),l&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=Ge(e,r).stateAfter;if(i&&(!(i instanceof ut)||r+i.lookAhead1||!(this.children[0]instanceof bo))){var l=[];this.collapse(l),this.children=[new bo(l)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var a=i.lines.length%25+25,l=a;l10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=L("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Ht(e,t.line,t,n,o)||t.line!=n.line&&Ht(e,n.line,t,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Ct=!0}o.addToHistory&&_i(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var l,s=t.line,u=e.cm;if(e.iter(s,n.line+1,(function(r){u&&o.collapsed&&!u.options.lineWrapping&&Rt(r)==u.display.maxLine&&(l=!0),o.collapsed&&s!=t.line&&Ke(r,0),function(e,t,n){var r=n&&window.WeakSet&&(n.markedSpans||(n.markedSpans=new WeakSet));r&&r.has(e.markedSpans)?e.markedSpans.push(t):(e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],r&&r.add(e.markedSpans)),t.marker.attachLine(e)}(r,new wt(o,s==t.line?t.ch:null,s==n.line?n.ch:null),e.cm&&e.cm.curOp),++s})),o.collapsed&&e.iter(t.line,n.line+1,(function(t){Wt(e,t)&&Ke(t,0)})),o.clearOnEnter&&de(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(Dt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++ko,o.atomic=!0),u){if(l&&(u.curOp.updateMaxLine=!0),o.collapsed)dr(u,t.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var c=t.line;c<=n.line;c++)hr(u,c,"text");o.atomic&&no(u.doc),sn(u,"markerAdded",u,o)}return o}So.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Gr(e),ve(this,"clear")){var n=this.find();n&&sn(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&dr(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&no(e.doc)),e&&sn(e,"markerCleared",e,this,r,i),t&&Vr(e),this.parent&&this.parent.clear()}},So.prototype.find=function(e,t){var n,r;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;s--)uo(this,r[s]);l?Qi(this,l):this.cm&&Mr(this.cm)})),undo:ni((function(){ho(this,"undo")})),redo:ni((function(){ho(this,"redo")})),undoSelection:ni((function(){ho(this,"undo",!0)})),redoSelection:ni((function(){ho(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=lt(this,e),t=lt(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var a=o.markedSpans;if(a)for(var l=0;l=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||n&&!n(s.marker)||r.push(s.marker.parent||s.marker)}++i})),r},getAllMarks:function(){var e=[];return this.iter((function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=o,++n})),lt(this,et(n,t))},indexFromPos:function(e){var t=(e=lt(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var d=e.dataTransfer.getData("Text");if(d){var h;if(t.state.draggingText&&!t.state.draggingText.copy&&(h=t.listSelections()),eo(t.doc,Si(n,n)),h)for(var f=0;f=0;t--)mo(e.doc,"",r[t].from,r[t].to,"+delete");Mr(e)}))}function Qo(e,t,n){var r=ie(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Jo(e,t,n){var r=Qo(e,t.ch,n);return null==r?null:new et(t.line,r,n<0?"after":"before")}function ea(e,t,n,r,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=ue(n,t.doc.direction);if(o){var a,l=i<0?X(o):o[0],s=i<0==(1==l.level)?"after":"before";if(l.level>0||"rtl"==t.doc.direction){var u=Bn(t,n);a=i<0?n.text.length-1:0;var c=Nn(t,u,a).top;a=oe((function(e){return Nn(t,u,e).top==c}),i<0==(1==l.level)?l.from:l.to-1,a),"before"==s&&(a=Qo(n,a,1))}else a=i<0?l.to:l.from;return new et(r,a,s)}}return new et(r,i<0?n.text.length:0,i<0?"before":"after")}qo.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},qo.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},qo.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},qo.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},qo.default=x?qo.macDefault:qo.pcDefault;var ta={selectAll:lo,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),j)},killLine:function(e){return Yo(e,(function(t){if(t.empty()){var n=Ge(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new et(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),et(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=Ge(e.doc,i.line-1).text;a&&(i=new et(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),et(i.line-1,a.length-1),i,"+transpose"))}n.push(new wi(i,i))}e.setSelections(n)}))},newlineAndIndent:function(e){return Jr(e,(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r-1&&(tt((i=u.ranges[i]).from(),t)<0||t.xRel>0)&&(tt(i.to(),t)>0||t.xRel<0)?function(e,t,n,r){var i=e.display,o=!1,u=ei(e,(function(t){s&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:wr(e)),fe(i.wrapper.ownerDocument,"mouseup",u),fe(i.wrapper.ownerDocument,"mousemove",c),fe(i.scroller,"dragstart",d),fe(i.scroller,"drop",u),o||(ye(t),r.addNew||Xi(e.doc,n,null,null,r.extend),s&&!h||a&&9==l?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},d=function(){return o=!0};s&&(i.scroller.draggable=!0);e.state.draggingText=u,u.copy=!r.moveOnDrag,de(i.wrapper.ownerDocument,"mouseup",u),de(i.wrapper.ownerDocument,"mousemove",c),de(i.scroller,"dragstart",d),de(i.scroller,"drop",u),e.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}(e,r,t,o):function(e,t,n,r){a&&wr(e);var i=e.display,o=e.doc;ye(t);var l,s,u=o.sel,c=u.ranges;r.addNew&&!r.extend?(s=o.sel.contains(n),l=s>-1?c[s]:new wi(n,n)):(l=o.sel.primary(),s=o.sel.primIndex);if("rectangle"==r.unit)r.addNew||(l=new wi(n,n)),n=ur(e,t,!0,!0),s=-1;else{var d=va(e,n,r.unit);l=r.extend?Vi(l,d.anchor,d.head,r.extend):d}r.addNew?-1==s?(s=c.length,Ji(o,ki(e,c.concat([l]),s),{scroll:!1,origin:"*mouse"})):c.length>1&&c[s].empty()&&"char"==r.unit&&!r.extend?(Ji(o,ki(e,c.slice(0,s).concat(c.slice(s+1)),0),{scroll:!1,origin:"*mouse"}),u=o.sel):Zi(o,s,l,q):(s=0,Ji(o,new Ci([l],0),q),u=o.sel);var h=n;function f(t){if(0!=tt(h,t))if(h=t,"rectangle"==r.unit){for(var i=[],a=e.options.tabSize,c=R(Ge(o,n.line).text,n.ch,a),d=R(Ge(o,t.line).text,t.ch,a),f=Math.min(c,d),p=Math.max(c,d),m=Math.min(n.line,t.line),g=Math.min(e.lastLine(),Math.max(n.line,t.line));m<=g;m++){var v=Ge(o,m).text,x=$(v,f,a);f==p?i.push(new wi(et(m,x),et(m,x))):v.length>x&&i.push(new wi(et(m,x),et(m,$(v,p,a))))}i.length||i.push(new wi(n,n)),Ji(o,ki(e,u.ranges.slice(0,s).concat(i),s),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var y,b=l,D=va(e,t,r.unit),C=b.anchor;tt(D.anchor,C)>0?(y=D.head,C=ot(b.from(),D.anchor)):(y=D.anchor,C=it(b.to(),D.head));var w=u.ranges.slice(0);w[s]=function(e,t){var n=t.anchor,r=t.head,i=Ge(e.doc,n.line);if(0==tt(n,r)&&n.sticky==r.sticky)return t;var o=ue(i);if(!o)return t;var a=le(o,n.ch,n.sticky),l=o[a];if(l.from!=n.ch&&l.to!=n.ch)return t;var s,u=a+(l.from==n.ch==(1!=l.level)?0:1);if(0==u||u==o.length)return t;if(r.line!=n.line)s=(r.line-n.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=le(o,r.ch,r.sticky),d=c-a||(r.ch-n.ch)*(1==l.level?-1:1);s=c==u-1||c==u?d<0:d>0}var h=o[u+(s?-1:0)],f=s==(1==h.level),p=f?h.from:h.to,m=f?"after":"before";return n.ch==p&&n.sticky==m?t:new wi(new et(n.line,p,m),r)}(e,new wi(lt(o,C),y)),Ji(o,ki(e,w,s),q)}}var p=i.wrapper.getBoundingClientRect(),m=0;function g(t){var n=++m,a=ur(e,t,!0,"rectangle"==r.unit);if(a)if(0!=tt(a,h)){e.curOp.focus=B(),f(a);var l=Er(i,o);(a.line>=l.to||a.linep.bottom?20:0;s&&setTimeout(ei(e,(function(){m==n&&(i.scroller.scrollTop+=s,g(t))})),50)}}function v(t){e.state.selectingText=!1,m=1/0,t&&(ye(t),i.input.focus()),fe(i.wrapper.ownerDocument,"mousemove",x),fe(i.wrapper.ownerDocument,"mouseup",y),o.history.lastSelOrigin=null}var x=ei(e,(function(e){0!==e.buttons&&ke(e)?g(e):v(e)})),y=ei(e,v);e.state.selectingText=y,de(i.wrapper.ownerDocument,"mousemove",x),de(i.wrapper.ownerDocument,"mouseup",y)}(e,r,t,o)}(t,r,o,e):we(e)==n.scroller&&ye(e):2==i?(r&&Xi(t.doc,r),setTimeout((function(){return n.input.focus()}),20)):3==i&&(w?t.display.input.onContextMenu(e):wr(t)))}}function va(e,t,n){if("char"==n)return new wi(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new wi(et(t.line,0),lt(e.doc,et(t.line+1,0)));var r=n(e,t);return new wi(r.from,r.to)}function xa(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&ye(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!ve(e,n))return De(t);o-=l.top-a.viewOffset;for(var s=0;s=i)return pe(e,n,e,Ye(e.doc,o),e.display.gutterSpecs[s].className,t),De(t)}}function ya(e,t){return xa(e,t,"gutterClick",!0)}function ba(e,t){Cn(e.display,t)||function(e,t){if(!ve(e,"gutterContextMenu"))return!1;return xa(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||w||e.display.input.onContextMenu(t)}function Da(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),_n(e)}ma.prototype.compare=function(e,t,n){return this.time+400>e&&0==tt(t,this.pos)&&n==this.button};var Ca={toString:function(){return"CodeMirror.Init"}},wa={},ka={};function Sa(e,t,n){if(!t!=!(n&&n!=Ca)){var r=e.display.dragFunctions,i=t?de:fe;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function Fa(e){e.options.lineWrapping?(N(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(F(e.display.wrapper,"CodeMirror-wrap"),$t(e)),sr(e),dr(e),_n(e),setTimeout((function(){return Wr(e)}),100)}function Aa(e,t){var n=this;if(!(this instanceof Aa))return new Aa(e,t);this.options=t=t?H(t):{},H(wa,t,!1);var r=t.value;"string"==typeof r?r=new Mo(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new Aa.inputStyles[t.inputStyle](this),o=this.display=new gi(e,r,i,t);for(var u in o.wrapper.CodeMirror=this,Da(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Ur(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new P,keySeq:null,specialChars:null},t.autofocus&&!v&&o.input.focus(),a&&l<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),function(e){var t=e.display;de(t.scroller,"mousedown",ei(e,ga)),de(t.scroller,"dblclick",a&&l<11?ei(e,(function(t){if(!me(e,t)){var n=ur(e,t);if(n&&!ya(e,t)&&!Cn(e.display,t)){ye(t);var r=e.findWordAt(n);Xi(e.doc,r.anchor,r.head)}}})):function(t){return me(e,t)||ye(t)});de(t.scroller,"contextmenu",(function(t){return ba(e,t)})),de(t.input.getField(),"contextmenu",(function(n){t.scroller.contains(n.target)||ba(e,n)}));var n,r={end:0};function i(){t.activeTouch&&(n=setTimeout((function(){return t.activeTouch=null}),1e3),(r=t.activeTouch).end=+new Date)}function o(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function s(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}de(t.scroller,"touchstart",(function(i){if(!me(e,i)&&!o(i)&&!ya(e,i)){t.input.ensurePolled(),clearTimeout(n);var a=+new Date;t.activeTouch={start:a,moved:!1,prev:a-r.end<=300?r:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),de(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),de(t.scroller,"touchend",(function(n){var r=t.activeTouch;if(r&&!Cn(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,a=e.coordsChar(t.activeTouch,"page");o=!r.prev||s(r,r.prev)?new wi(a,a):!r.prev.prev||s(r,r.prev.prev)?e.findWordAt(a):new wi(et(a.line,0),lt(e.doc,et(a.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),ye(n)}i()})),de(t.scroller,"touchcancel",i),de(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(Ir(e,t.scroller.scrollTop),Hr(e,t.scroller.scrollLeft,!0),pe(e,"scroll",e))})),de(t.scroller,"mousewheel",(function(t){return Di(e,t)})),de(t.scroller,"DOMMouseScroll",(function(t){return Di(e,t)})),de(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){me(e,t)||Ce(t)},over:function(t){me(e,t)||(!function(e,t){var n=ur(e,t);if(n){var r=document.createDocumentFragment();xr(e,n,r),e.display.dragCursor||(e.display.dragCursor=T("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),E(e.display.dragCursor,r)}}(e,t),Ce(t))},start:function(t){return function(e,t){if(a&&(!e.state.draggingText||+new Date-Bo<100))Ce(t);else if(!me(e,t)&&!Cn(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!h)){var n=T("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",d&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),d&&n.parentNode.removeChild(n)}}(e,t)},drop:ei(e,No),leave:function(t){me(e,t)||Oo(e)}};var u=t.input.getField();de(u,"keyup",(function(t){return da.call(e,t)})),de(u,"keydown",ei(e,ca)),de(u,"keypress",ei(e,ha)),de(u,"focus",(function(t){return kr(e,t)})),de(u,"blur",(function(t){return Sr(e,t)}))}(this),Ho(),Gr(this),this.curOp.forceUpdate=!0,Ii(this,r),t.autofocus&&!v||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&kr(n)}),20):Sr(this),ka)ka.hasOwnProperty(u)&&ka[u](this,t[u],Ca);hi(this),t.finishInit&&t.finishInit(this);for(var c=0;c150)){if(!r)return;n="prev"}}else u=0,n="not";"prev"==n?u=t>o.first?R(Ge(o,t-1).text,null,a):0:"add"==n?u=s+e.options.indentUnit:"subtract"==n?u=s-e.options.indentUnit:"number"==typeof n&&(u=s+n),u=Math.max(0,u);var d="",h=0;if(e.options.indentWithTabs)for(var f=Math.floor(u/a);f;--f)h+=a,d+="\t";if(ha,s=Me(t),u=null;if(l&&r.ranges.length>1)if(La&&La.text.join("\n")==t){if(r.ranges.length%La.text.length==0){u=[];for(var c=0;c=0;h--){var f=r.ranges[h],p=f.from(),m=f.to();f.empty()&&(n&&n>0?p=et(p.line,p.ch-n):e.state.overwrite&&!l?m=et(m.line,Math.min(Ge(o,m.line).text.length,m.ch+X(s).length)):l&&La&&La.lineWise&&La.text.join("\n")==s.join("\n")&&(p=m=et(p.line,0)));var g={from:p,to:m,text:u?u[h%u.length]:s,origin:i||(l?"paste":e.state.cutIncoming>a?"cut":"+input")};uo(e.doc,g),sn(e,"inputRead",e,g)}t&&!l&&Oa(e,t),Mr(e),e.curOp.updateInput<2&&(e.curOp.updateInput=d),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Na(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Jr(t,(function(){return Ba(t,n,0,null,"paste")})),!0}function Oa(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l-1){a=Ta(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Ge(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ta(e,i.head.line,"smart"));a&&sn(e,"electricInput",e,i.head.line)}}}function Ia(e){for(var t=[],n=[],r=0;r0?0:-1));if(isNaN(c))a=null;else{var d=n>0?c>=55296&&c<56320:c>=56320&&c<57343;a=new et(t.line,Math.max(0,Math.min(l.text.length,t.ch+n*(d?2:1))),-n)}}else a=i?function(e,t,n,r){var i=ue(t,e.doc.direction);if(!i)return Jo(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=le(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&h>=c.begin)){var f=d?"before":"after";return new et(n.line,h,f)}}var p=function(e,t,r){for(var o=function(e,t){return t?new et(n.line,s(e,1),"before"):new et(n.line,e,"after")};e>=0&&e0==(1!=a.level),u=l?r.begin:s(r.end,-1);if(a.from<=u&&u0?c.end:s(c.begin,-1);return null==g||r>0&&g==t.text.length||!(m=p(r>0?0:i.length-1,r,u(g)))?null:m}(e.cm,l,t,n):Jo(l,t,n);if(null==a){if(o||(u=t.line+s)=e.first+e.size||(t=new et(u,t.ch,t.sticky),!(l=Ge(e,u))))return!1;t=ea(i,e.cm,l,t.line,s)}else t=a;return!0}if("char"==r||"codepoint"==r)u();else if("column"==r)u(!0);else if("word"==r||"group"==r)for(var c=null,d="group"==r,h=e.cm&&e.cm.getHelper(t,"wordChars"),f=!0;!(n<0)||u(!f);f=!1){var p=l.text.charAt(t.ch)||"\n",m=ee(p,h)?"w":d&&"\n"==p?"n":!d||/\s/.test(p)?null:"p";if(!d||f||m||(m="s"),c&&c!=m){n<0&&(n=1,u(),t.sticky="after");break}if(m&&(c=m),n>0&&!u(!f))break}var g=oo(e,t,o,a,!0);return nt(o,g)&&(g.hitSide=!0),g}function Pa(e,t,n,r){var i,o,a=e.doc,l=t.left;if("page"==r){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(s-.5*rr(e.display),3);i=(n>0?t.bottom:t.top)+n*u}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;(o=Zn(e,l,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var _a=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new P,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Wa(e,t){var n=Mn(e,t.line);if(!n||n.hidden)return null;var r=Ge(e.doc,t.line),i=Tn(n,r,t.line),o=ue(r,e.doc.direction),a="left";o&&(a=le(o,t.ch)%2?"right":"left");var l=zn(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function ja(e,t){return t&&(e.bad=!0),e}function qa(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return ja(e.clipPos(et(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&Wa(t,i)||{node:s[0].measure.map[2],offset:0},c=o.liner.firstLine()&&(a=et(a.line-1,Ge(r.doc,a.line-1).length)),l.ch==Ge(r.doc,l.line).text.length&&l.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=cr(r,a.line))?(t=Ze(i.view[0].line),n=i.view[0].node):(t=Ze(i.view[e].line),n=i.view[e-1].node.nextSibling);var s,u,c=cr(r,l.line);if(c==i.view.length-1?(s=i.viewTo-1,u=i.lineDiv.lastChild):(s=Ze(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!n)return!1;for(var d=r.doc.splitLines(function(e,t,n,r,i){var o="",a=!1,l=e.doc.lineSeparator(),s=!1;function u(e){return function(t){return t.id==e}}function c(){a&&(o+=l,s&&(o+=l),a=s=!1)}function d(e){e&&(c(),o+=e)}function h(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(n)return void d(n);var o,f=t.getAttribute("cm-marker");if(f){var p=e.findMarks(et(r,0),et(i+1,0),u(+f));return void(p.length&&(o=p[0].find(0))&&d(Ve(e.doc,o.from,o.to).join(l)))}if("false"==t.getAttribute("contenteditable"))return;var m=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;m&&c();for(var g=0;g1&&h.length>1;)if(X(d)==X(h))d.pop(),h.pop(),s--;else{if(d[0]!=h[0])break;d.shift(),h.shift(),t++}for(var f=0,p=0,m=d[0],g=h[0],v=Math.min(m.length,g.length);fa.ch&&x.charCodeAt(x.length-p-1)==y.charCodeAt(y.length-p-1);)f--,p++;d[d.length-1]=x.slice(0,x.length-p).replace(/^\u200b+/,""),d[0]=d[0].slice(f).replace(/\u200b+$/,"");var D=et(t,f),C=et(s,h.length?X(h).length-p:0);return d.length>1||d[0]||tt(D,C)?(mo(r.doc,d,D,C,"+input"),!0):void 0},_a.prototype.ensurePolled=function(){this.forceCompositionEnd()},_a.prototype.reset=function(){this.forceCompositionEnd()},_a.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},_a.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},_a.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Jr(this.cm,(function(){return dr(e.cm)}))},_a.prototype.setUneditable=function(e){e.contentEditable="false"},_a.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||ei(this.cm,Ba)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},_a.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},_a.prototype.onContextMenu=function(){},_a.prototype.resetPosition=function(){},_a.prototype.needsContentAttribute=!0;var $a=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new P,this.hasSelection=!1,this.composing=null};$a.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!me(r,e)){if(r.somethingSelected())Ma({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=Ia(r);Ma({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,j):(n.prevInput="",i.value=t.text.join("\n"),I(i))}"cut"==e.type&&(r.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width="0px"),de(i,"input",(function(){a&&l>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()})),de(i,"paste",(function(e){me(r,e)||Na(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),de(i,"cut",o),de(i,"copy",o),de(e.scroller,"paste",(function(t){if(!Cn(e,t)&&!me(r,t)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),de(e.lineSpace,"selectstart",(function(t){Cn(e,t)||ye(t)})),de(i,"compositionstart",(function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}})),de(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},$a.prototype.createField=function(e){this.wrapper=Ha(),this.textarea=this.wrapper.firstChild},$a.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},$a.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=vr(e);if(e.options.moveInputWithCursor){var i=Vn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},$a.prototype.showSelection=function(e){var t=this.cm.display;E(t.cursorDiv,e.cursors),E(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},$a.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&I(this.textarea),a&&l>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",a&&l>=9&&(this.hasSelection=null))}},$a.prototype.getField=function(){return this.textarea},$a.prototype.supportsTouch=function(){return!1},$a.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!v||B()!=this.textarea))try{this.textarea.focus()}catch(e){}},$a.prototype.blur=function(){this.textarea.blur()},$a.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},$a.prototype.receivedFocus=function(){this.slowPoll()},$a.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},$a.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function n(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))}))},$a.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Be(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(a&&l>=9&&this.hasSelection===i||x&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var s=0,u=Math.min(r.length,i.length);s1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},$a.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},$a.prototype.onKeyPress=function(){a&&l>=9&&(this.hasSelection=null),this.fastPoll()},$a.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=ur(n,e),u=r.scroller.scrollTop;if(o&&!d){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&ei(n,Ji)(n.doc,Si(o),j);var c,h=i.style.cssText,f=t.wrapper.style.cssText,p=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-p.top-5)+"px; left: "+(e.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",s&&(c=window.scrollY),r.input.focus(),s&&window.scrollTo(null,c),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=v,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&l>=9&&g(),w){Ce(e);var m=function(){fe(window,"mouseup",m),setTimeout(v,20)};de(window,"mouseup",m)}else setTimeout(v,50)}function g(){if(null!=i.selectionStart){var e=n.somethingSelected(),o="​"+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"​",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function v(){if(t.contextMenuPending==v&&(t.contextMenuPending=!1,t.wrapper.style.cssText=f,i.style.cssText=h,a&&l<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=u),null!=i.selectionStart)){(!a||a&&l<9)&&g();var e=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==t.prevInput?ei(n,lo)(n):e++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},$a.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e,this.textarea.readOnly=!!e},$a.prototype.setUneditable=function(){},$a.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function n(n,r,i,o){e.defaults[n]=r,i&&(t[n]=o?function(e,t,n){n!=Ca&&i(e,t,n)}:i)}e.defineOption=n,e.Init=Ca,n("value","",(function(e,t){return e.setValue(t)}),!0),n("mode",null,(function(e,t){e.doc.modeOption=t,Li(e)}),!0),n("indentUnit",2,Li,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(e){Mi(e),_n(e),dr(e)}),!0),n("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(et(r,o))}r++}));for(var i=n.length-1;i>=0;i--)mo(e.doc,t,n[i],et(n[i].line,n[i].ch+t.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=Ca&&e.refresh()})),n("specialCharPlaceholder",Qt,(function(e){return e.refresh()}),!0),n("electricChars",!0),n("inputStyle",v?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),n("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),n("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),n("rtlMoveVisually",!b),n("wholeLineUpdateBefore",!0),n("theme","default",(function(e){Da(e),mi(e)}),!0),n("keyMap","default",(function(e,t,n){var r=Zo(t),i=n!=Ca&&Zo(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Fa,!0),n("gutters",[],(function(e,t){e.display.gutterSpecs=fi(t,e.options.lineNumbers),mi(e)}),!0),n("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?ar(e.display)+"px":"0",e.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(e){return Wr(e)}),!0),n("scrollbarStyle","native",(function(e){Ur(e),Wr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=fi(e.options.gutters,t),mi(e)}),!0),n("firstLineNumber",1,mi,!0),n("lineNumberFormatter",(function(e){return e}),mi,!0),n("showCursorWhenSelecting",!1,gr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(e,t){"nocursor"==t&&(Sr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),n("screenReaderLabel",null,(function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)})),n("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),n("dragDrop",!0,Sa),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,gr,!0),n("singleCursorHeightPerLine",!0,gr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,Mi,!0),n("addModeClass",!1,Mi,!0),n("pollInterval",100),n("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),n("historyEventDelay",1250),n("viewportMargin",10,(function(e){return e.refresh()}),!0),n("maxHighlightLength",1e4,Mi,!0),n("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),n("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),n("autofocus",null),n("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),n("phrases",null)}(Aa),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&ei(this,t[e])(this,n,i),pe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Zo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;nn&&(Ta(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&Mr(this));else{var o=i.from(),a=i.to(),l=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var s=l;s0&&Zi(this.doc,r,new wi(o,u[r].to()),j)}}})),getTokenAt:function(e,t){return xt(this,e,t)},getLineTokens:function(e,t){return xt(this,et(e),t,!0)},getTokenTypeAt:function(e){e=lt(this.doc,e);var t,n=ht(this,Ge(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(e=o,i=!0),r=Ge(this.doc,e)}else r=e;return Un(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-qt(r):0)},defaultTextHeight:function(){return rr(this.display)},defaultCharWidth:function(){return ir(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o,a,l,s=this.display,u=(e=Vn(this,lt(this.doc,e))).bottom,c=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),s.sizer.appendChild(t),"over"==r)u=e.top;else if("above"==r||"near"==r){var d=Math.max(s.wrapper.clientHeight,this.doc.height),h=Math.max(s.sizer.clientWidth,s.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>d)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=d&&(u=e.bottom),c+t.offsetWidth>h&&(c=h-t.offsetWidth)}t.style.top=u+"px",t.style.left=t.style.right="","right"==i?(c=s.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?c=0:"middle"==i&&(c=(s.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+"px"),n&&(o=this,a={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(l=Tr(o,a)).scrollTop&&Ir(o,l.scrollTop),null!=l.scrollLeft&&Hr(o,l.scrollLeft))},triggerOnKeyDown:ti(ca),triggerOnKeyPress:ti(ha),triggerOnKeyUp:da,triggerOnMouseDown:ti(ga),execCommand:function(e){if(ta.hasOwnProperty(e))return ta[e].call(null,this)},triggerElectric:ti((function(e){Oa(this,e)})),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=lt(this.doc,e),a=0;a0&&a(t.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&sr(this),pe(this,"refresh",this)})),swapDoc:ti((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),Ii(this,e),_n(this),this.display.input.reset(),Br(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,sn(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},xe(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(Aa);var Ga="iter insert remove copy getEditor constructor".split(" ");for(var Va in Mo.prototype)Mo.prototype.hasOwnProperty(Va)&&_(Ga,Va)<0&&(Aa.prototype[Va]=function(e){return function(){return e.apply(this.doc,arguments)}}(Mo.prototype[Va]));return xe(Mo),Aa.inputStyles={textarea:$a,contenteditable:_a},Aa.defineMode=function(e){Aa.defaults.mode||"null"==e||(Aa.defaults.mode=e),He.apply(this,arguments)},Aa.defineMIME=function(e,t){ze[e]=t},Aa.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Aa.defineMIME("text/plain","null"),Aa.defineExtension=function(e,t){Aa.prototype[e]=t},Aa.defineDocExtension=function(e,t){Mo.prototype[e]=t},Aa.fromTextArea=function(e,t){if((t=t?H(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=B();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}function r(){e.value=l.getValue()}var i;if(e.form&&(de(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(e){}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display="",e.form&&(fe(e.form,"submit",r),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var l=Aa((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return l},function(e){e.off=fe,e.on=de,e.wheelEventPixels=bi,e.Doc=Mo,e.splitLines=Me,e.countColumn=R,e.findColumn=$,e.isWordChar=J,e.Pass=W,e.signal=pe,e.Line=Gt,e.changeEnd=Fi,e.scrollbarModel=qr,e.Pos=et,e.cmpPos=tt,e.modes=Ie,e.mimeModes=ze,e.resolveMode=Re,e.getMode=Pe,e.modeExtensions=_e,e.extendMode=We,e.copyState=je,e.startState=Ue,e.innerMode=qe,e.commands=ta,e.keyMap=qo,e.keyName=Ko,e.isModifierKey=Vo,e.lookupKey=Go,e.normalizeKeyMap=$o,e.StringStream=$e,e.SharedTextMarker=Ao,e.TextMarker=So,e.LineWidget=Co,e.e_preventDefault=ye,e.e_stopPropagation=be,e.e_stop=Ce,e.addClass=N,e.contains=M,e.rmClass=F,e.keyNames=Po}(Aa),Aa.version="5.65.0",Aa}))},{}],11:[function(e,t,n){var r;r=function(e){"use strict";var t=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;e.defineMode("gfm",(function(n,r){var i=0,o={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(e){return{code:e.code,codeBlock:e.codeBlock,ateSpace:e.ateSpace}},token:function(e,n){if(n.combineTokens=null,n.codeBlock)return e.match(/^```+/)?(n.codeBlock=!1,null):(e.skipToEnd(),null);if(e.sol()&&(n.code=!1),e.sol()&&e.match(/^```+/))return e.skipToEnd(),n.codeBlock=!0,null;if("`"===e.peek()){e.next();var o=e.pos;e.eatWhile("`");var a=1+e.pos-o;return n.code?a===i&&(n.code=!1):(i=a,n.code=!0),null}if(n.code)return e.next(),null;if(e.eatSpace())return n.ateSpace=!0,null;if((e.sol()||n.ateSpace)&&(n.ateSpace=!1,!1!==r.gitHubSpice)){if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/))return n.combineTokens=!0,"link";if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return n.combineTokens=!0,"link"}return e.match(t)&&"]("!=e.string.slice(e.start-2,e.start)&&(0==e.start||/\W/.test(e.string.charAt(e.start-1)))?(n.combineTokens=!0,"link"):(e.next(),null)},blankLine:function(e){return e.code=!1,null}},a={taskLists:!0,strikethrough:!0,emoji:!0};for(var l in r)a[l]=r[l];return a.name="markdown",e.overlayMode(e.getMode(n,a),o)}),"markdown"),e.defineMIME("text/x-gfm","gfm")},"object"==typeof n&&"object"==typeof t?r(e("../../lib/codemirror"),e("../markdown/markdown"),e("../../addon/mode/overlay")):r(CodeMirror)},{"../../addon/mode/overlay":7,"../../lib/codemirror":10,"../markdown/markdown":12}],12:[function(e,t,n){var r;r=function(e){"use strict";e.defineMode("markdown",(function(t,n){var r=e.getMode(t,"text/html"),i="null"==r.name;void 0===n.highlightFormatting&&(n.highlightFormatting=!1),void 0===n.maxBlockquoteDepth&&(n.maxBlockquoteDepth=0),void 0===n.taskLists&&(n.taskLists=!1),void 0===n.strikethrough&&(n.strikethrough=!1),void 0===n.emoji&&(n.emoji=!1),void 0===n.fencedCodeBlockHighlighting&&(n.fencedCodeBlockHighlighting=!0),void 0===n.fencedCodeBlockDefaultMode&&(n.fencedCodeBlockDefaultMode="text/plain"),void 0===n.xml&&(n.xml=!0),void 0===n.tokenTypeOverrides&&(n.tokenTypeOverrides={});var o={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var a in o)o.hasOwnProperty(a)&&n.tokenTypeOverrides[a]&&(o[a]=n.tokenTypeOverrides[a]);var l=/^([*\-_])(?:\s*\1){2,}\s*$/,s=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,u=/^\[(x| )\](?=\s)/i,c=n.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,d=/^ {0,3}(?:\={1,}|-{2,})\s*$/,h=/^[^#!\[\]*_\\<>` "'(~:]+/,f=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,p=/^\s*\[[^\]]+?\]:.*$/,m=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/;function g(e,t,n){return t.f=t.inline=n,n(e,t)}function v(e,t,n){return t.f=t.block=n,n(e,t)}function x(t){if(t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,t.indentedCode=!1,t.f==b){var n=i;if(!n){var o=e.innerMode(r,t.htmlState);n="xml"==o.mode.name&&null===o.state.tagStart&&!o.state.context&&o.state.tokenize.isInText}n&&(t.f=k,t.block=y,t.htmlState=null)}return t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.prevLine=t.thisLine,t.thisLine={stream:null},null}function y(r,i){var a,h=r.column()===i.indentation,m=!(a=i.prevLine.stream)||!/\S/.test(a.string),v=i.indentedCode,x=i.prevLine.hr,y=!1!==i.list,b=(i.listStack[i.listStack.length-1]||0)+3;i.indentedCode=!1;var w=i.indentation;if(null===i.indentationDiff&&(i.indentationDiff=i.indentation,y)){for(i.list=null;w=4&&(v||i.prevLine.fencedCodeEnd||i.prevLine.header||m))return r.skipToEnd(),i.indentedCode=!0,o.code;if(r.eatSpace())return null;if(h&&i.indentation<=b&&(F=r.match(c))&&F[1].length<=6)return i.quote=0,i.header=F[1].length,i.thisLine.header=!0,n.highlightFormatting&&(i.formatting="header"),i.f=i.inline,C(i);if(i.indentation<=b&&r.eat(">"))return i.quote=h?1:i.quote+1,n.highlightFormatting&&(i.formatting="quote"),r.eatSpace(),C(i);if(!S&&!i.setext&&h&&i.indentation<=b&&(F=r.match(s))){var A=F[1]?"ol":"ul";return i.indentation=w+r.current().length,i.list=!0,i.quote=0,i.listStack.push(i.indentation),i.em=!1,i.strong=!1,i.code=!1,i.strikethrough=!1,n.taskLists&&r.match(u,!1)&&(i.taskList=!0),i.f=i.inline,n.highlightFormatting&&(i.formatting=["list","list-"+A]),C(i)}return h&&i.indentation<=b&&(F=r.match(f,!0))?(i.quote=0,i.fencedEndRE=new RegExp(F[1]+"+ *$"),i.localMode=n.fencedCodeBlockHighlighting&&function(n){if(e.findModeByName){var r=e.findModeByName(n);r&&(n=r.mime||r.mimes[0])}var i=e.getMode(t,n);return"null"==i.name?null:i}(F[2]||n.fencedCodeBlockDefaultMode),i.localMode&&(i.localState=e.startState(i.localMode)),i.f=i.block=D,n.highlightFormatting&&(i.formatting="code-block"),i.code=-1,C(i)):i.setext||!(k&&y||i.quote||!1!==i.list||i.code||S||p.test(r.string))&&(F=r.lookAhead(1))&&(F=F.match(d))?(i.setext?(i.header=i.setext,i.setext=0,r.skipToEnd(),n.highlightFormatting&&(i.formatting="header")):(i.header="="==F[0].charAt(0)?1:2,i.setext=i.header),i.thisLine.header=!0,i.f=i.inline,C(i)):S?(r.skipToEnd(),i.hr=!0,i.thisLine.hr=!0,o.hr):"["===r.peek()?g(r,i,E):g(r,i,i.inline)}function b(t,n){var o=r.token(t,n.htmlState);if(!i){var a=e.innerMode(r,n.htmlState);("xml"==a.mode.name&&null===a.state.tagStart&&!a.state.context&&a.state.tokenize.isInText||n.md_inside&&t.current().indexOf(">")>-1)&&(n.f=k,n.block=y,n.htmlState=null)}return o}function D(e,t){var r,i=t.listStack[t.listStack.length-1]||0,a=t.indentation=e.quote?t.push(o.formatting+"-"+e.formatting[r]+"-"+e.quote):t.push("error"))}if(e.taskOpen)return t.push("meta"),t.length?t.join(" "):null;if(e.taskClosed)return t.push("property"),t.length?t.join(" "):null;if(e.linkHref?t.push(o.linkHref,"url"):(e.strong&&t.push(o.strong),e.em&&t.push(o.em),e.strikethrough&&t.push(o.strikethrough),e.emoji&&t.push(o.emoji),e.linkText&&t.push(o.linkText),e.code&&t.push(o.code),e.image&&t.push(o.image),e.imageAltText&&t.push(o.imageAltText,"link"),e.imageMarker&&t.push(o.imageMarker)),e.header&&t.push(o.header,o.header+"-"+e.header),e.quote&&(t.push(o.quote),!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(o.quote+"-"+e.quote):t.push(o.quote+"-"+n.maxBlockquoteDepth)),!1!==e.list){var i=(e.listStack.length-1)%3;i?1===i?t.push(o.list2):t.push(o.list3):t.push(o.list1)}return e.trailingSpaceNewLine?t.push("trailing-space-new-line"):e.trailingSpace&&t.push("trailing-space-"+(e.trailingSpace%2?"a":"b")),t.length?t.join(" "):null}function w(e,t){if(e.match(h,!0))return C(t)}function k(t,i){var a=i.text(t,i);if(void 0!==a)return a;if(i.list)return i.list=null,C(i);if(i.taskList)return" "===t.match(u,!0)[1]?i.taskOpen=!0:i.taskClosed=!0,n.highlightFormatting&&(i.formatting="task"),i.taskList=!1,C(i);if(i.taskOpen=!1,i.taskClosed=!1,i.header&&t.match(/^#+$/,!0))return n.highlightFormatting&&(i.formatting="header"),C(i);var l=t.next();if(i.linkTitle){i.linkTitle=!1;var s=l;"("===l&&(s=")");var c="^\\s*(?:[^"+(s=(s+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1"))+"\\\\]+|\\\\\\\\|\\\\.)"+s;if(t.match(new RegExp(c),!0))return o.linkHref}if("`"===l){var d=i.formatting;n.highlightFormatting&&(i.formatting="code"),t.eatWhile("`");var h=t.current().length;if(0!=i.code||i.quote&&1!=h){if(h==i.code){var f=C(i);return i.code=0,f}return i.formatting=d,C(i)}return i.code=h,C(i)}if(i.code)return C(i);if("\\"===l&&(t.next(),n.highlightFormatting)){var p=C(i),g=o.formatting+"-escape";return p?p+" "+g:g}if("!"===l&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return i.imageMarker=!0,i.image=!0,n.highlightFormatting&&(i.formatting="image"),C(i);if("["===l&&i.imageMarker&&t.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return i.imageMarker=!1,i.imageAltText=!0,n.highlightFormatting&&(i.formatting="image"),C(i);if("]"===l&&i.imageAltText){n.highlightFormatting&&(i.formatting="image");var p=C(i);return i.imageAltText=!1,i.image=!1,i.inline=i.f=F,p}if("["===l&&!i.image)return i.linkText&&t.match(/^.*?\]/)||(i.linkText=!0,n.highlightFormatting&&(i.formatting="link")),C(i);if("]"===l&&i.linkText){n.highlightFormatting&&(i.formatting="link");var p=C(i);return i.linkText=!1,i.inline=i.f=t.match(/\(.*?\)| ?\[.*?\]/,!1)?F:k,p}if("<"===l&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1))return i.f=i.inline=S,n.highlightFormatting&&(i.formatting="link"),(p=C(i))?p+=" ":p="",p+o.linkInline;if("<"===l&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1))return i.f=i.inline=S,n.highlightFormatting&&(i.formatting="link"),(p=C(i))?p+=" ":p="",p+o.linkEmail;if(n.xml&&"<"===l&&t.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var x=t.string.indexOf(">",t.pos);if(-1!=x){var y=t.string.substring(t.start,x);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(y)&&(i.md_inside=!0)}return t.backUp(1),i.htmlState=e.startState(r),v(t,i,b)}if(n.xml&&"<"===l&&t.match(/^\/\w*?>/))return i.md_inside=!1,"tag";if("*"===l||"_"===l){for(var D=1,w=1==t.pos?" ":t.string.charAt(t.pos-2);D<3&&t.eat(l);)D++;var A=t.peek()||" ",E=!/\s/.test(A)&&(!m.test(A)||/\s/.test(w)||m.test(w)),T=!/\s/.test(w)&&(!m.test(w)||/\s/.test(A)||m.test(A)),L=null,M=null;if(D%2&&(i.em||!E||"*"!==l&&T&&!m.test(w)?i.em!=l||!T||"*"!==l&&E&&!m.test(A)||(L=!1):L=!0),D>1&&(i.strong||!E||"*"!==l&&T&&!m.test(w)?i.strong!=l||!T||"*"!==l&&E&&!m.test(A)||(M=!1):M=!0),null!=M||null!=L)return n.highlightFormatting&&(i.formatting=null==L?"strong":null==M?"em":"strong em"),!0===L&&(i.em=l),!0===M&&(i.strong=l),f=C(i),!1===L&&(i.em=!1),!1===M&&(i.strong=!1),f}else if(" "===l&&(t.eat("*")||t.eat("_"))){if(" "===t.peek())return C(i);t.backUp(1)}if(n.strikethrough)if("~"===l&&t.eatWhile(l)){if(i.strikethrough)return n.highlightFormatting&&(i.formatting="strikethrough"),f=C(i),i.strikethrough=!1,f;if(t.match(/^[^\s]/,!1))return i.strikethrough=!0,n.highlightFormatting&&(i.formatting="strikethrough"),C(i)}else if(" "===l&&t.match("~~",!0)){if(" "===t.peek())return C(i);t.backUp(2)}if(n.emoji&&":"===l&&t.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){i.emoji=!0,n.highlightFormatting&&(i.formatting="emoji");var B=C(i);return i.emoji=!1,B}return" "===l&&(t.match(/^ +$/,!1)?i.trailingSpace++:i.trailingSpace&&(i.trailingSpaceNewLine=!0)),C(i)}function S(e,t){if(">"===e.next()){t.f=t.inline=k,n.highlightFormatting&&(t.formatting="link");var r=C(t);return r?r+=" ":r="",r+o.linkInline}return e.match(/^[^>]+/,!0),o.linkInline}function F(e,t){if(e.eatSpace())return null;var r,i=e.next();return"("===i||"["===i?(t.f=t.inline=(r="("===i?")":"]",function(e,t){if(e.next()===r){t.f=t.inline=k,n.highlightFormatting&&(t.formatting="link-string");var i=C(t);return t.linkHref=!1,i}return e.match(A[r]),t.linkHref=!0,C(t)}),n.highlightFormatting&&(t.formatting="link-string"),t.linkHref=!0,C(t)):"error"}var A={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function E(e,t){return e.match(/^([^\]\\]|\\.)*\]:/,!1)?(t.f=T,e.next(),n.highlightFormatting&&(t.formatting="link"),t.linkText=!0,C(t)):g(e,t,k)}function T(e,t){if(e.match("]:",!0)){t.f=t.inline=L,n.highlightFormatting&&(t.formatting="link");var r=C(t);return t.linkText=!1,r}return e.match(/^([^\]\\]|\\.)+/,!0),o.linkText}function L(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),void 0===e.peek()?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),t.f=t.inline=k,o.linkHref+" url")}var M={startState:function(){return{f:y,prevLine:{stream:null},thisLine:{stream:null},block:y,htmlState:null,indentation:0,inline:k,text:w,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&e.copyState(r,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkText:t.linkText,linkTitle:t.linkTitle,linkHref:t.linkHref,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,emoji:t.emoji,header:t.header,setext:t.setext,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedEndRE:t.fencedEndRE}},token:function(e,t){if(t.formatting=!1,e!=t.thisLine.stream){if(t.header=0,t.hr=!1,e.match(/^\s*$/,!0))return x(t),null;if(t.prevLine=t.thisLine,t.thisLine={stream:e},t.taskList=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,!t.localState&&(t.f=t.block,t.f!=b)){var n=e.match(/^\s*/,!0)[0].replace(/\t/g," ").length;if(t.indentation=n,t.indentationDiff=null,n>0)return null}}return t.f(e,t)},innerMode:function(e){return e.block==b?{state:e.htmlState,mode:r}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:M}},indent:function(t,n,i){return t.block==b&&r.indent?r.indent(t.htmlState,n,i):t.localState&&t.localMode.indent?t.localMode.indent(t.localState,n,i):e.Pass},blankLine:x,getType:C,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return M}),"xml"),e.defineMIME("text/markdown","markdown"),e.defineMIME("text/x-markdown","markdown")},"object"==typeof n&&"object"==typeof t?r(e("../../lib/codemirror"),e("../xml/xml"),e("../meta")):r(CodeMirror)},{"../../lib/codemirror":10,"../meta":13,"../xml/xml":14}],13:[function(e,t,n){(function(e){"use strict";e.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy","cbl"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded JavaScript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"],alias:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var t=0;t-1&&t.substring(i+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var n=0;n")):null:e.match("--")?n(f("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(p(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=f("meta","?>"),"meta"):(o=e.eat("/")?"closeTag":"openTag",t.tokenize=h,"tag bracket"):"&"==r?(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error":(e.eatWhile(/[^&<]/),null)}function h(e,t){var n,r,i=e.next();if(">"==i||"/"==i&&e.eat(">"))return t.tokenize=d,o=">"==i?"endTag":"selfcloseTag","tag bracket";if("="==i)return o="equals",null;if("<"==i){t.tokenize=d,t.state=y,t.tagName=t.tagStart=null;var a=t.tokenize(e,t);return a?a+" tag error":"tag error"}return/[\'\"]/.test(i)?(t.tokenize=(n=i,r=function(e,t){for(;!e.eol();)if(e.next()==n){t.tokenize=h;break}return"string"},r.isInAttribute=!0,r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function f(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=d;break}n.next()}return e}}function p(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=p(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=d;break}return n.tokenize=p(e-1),n.tokenize(t,n)}}return"meta"}}function m(e){return e&&e.toLowerCase()}function g(e,t,n){this.prev=e.context,this.tagName=t||"",this.indent=e.indented,this.startOfLine=n,(s.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function v(e){e.context&&(e.context=e.context.prev)}function x(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!s.contextGrabbers.hasOwnProperty(m(n))||!s.contextGrabbers[m(n)].hasOwnProperty(m(t)))return;v(e)}}function y(e,t,n){return"openTag"==e?(n.tagStart=t.column(),b):"closeTag"==e?D:y}function b(e,t,n){return"word"==e?(n.tagName=t.current(),a="tag",k):s.allowMissingTagName&&"endTag"==e?(a="tag bracket",k(e,0,n)):(a="error",b)}function D(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&s.implicitlyClosed.hasOwnProperty(m(n.context.tagName))&&v(n),n.context&&n.context.tagName==r||!1===s.matchClosing?(a="tag",C):(a="tag error",w)}return s.allowMissingTagName&&"endTag"==e?(a="tag bracket",C(e,0,n)):(a="error",w)}function C(e,t,n){return"endTag"!=e?(a="error",C):(v(n),y)}function w(e,t,n){return a="error",C(e,0,n)}function k(e,t,n){if("word"==e)return a="attribute",S;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||s.autoSelfClosers.hasOwnProperty(m(r))?x(n,r):(x(n,r),n.context=new g(n,r,i==n.indented)),y}return a="error",k}function S(e,t,n){return"equals"==e?F:(s.allowMissing||(a="error"),k(e,0,n))}function F(e,t,n){return"string"==e?A:"word"==e&&s.allowUnquoted?(a="string",k):(a="error",k(e,0,n))}function A(e,t,n){return"string"==e?A:k(e,0,n)}return d.isInText=!0,{startState:function(e){var t={tokenize:d,state:y,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;o=null;var n=t.tokenize(e,t);return(n||o)&&"comment"!=n&&(a=null,t.state=t.state(o||n,e,t),a&&(n="error"==a?n+" error":a)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+l;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=h&&t.tokenize!=d)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==s.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+l*(s.multilineTagIndentFactor||1);if(s.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:s.htmlMode?"html":"xml",helperType:s.htmlMode?"html":"xml",skipAttribute:function(e){e.state==F&&(e.state=k)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:"closeTag"==e.type}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}})),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})("object"==typeof n&&"object"==typeof t?e("../../lib/codemirror"):CodeMirror)},{"../../lib/codemirror":10}],15:[function(e,t,n){!function(e,r){"object"==typeof n&&void 0!==t?r(n):r((e="undefined"!=typeof globalThis?globalThis:e||self).marked={})}(this,(function(e){"use strict";function t(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults={baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};var o=/[&<>"']/,a=/[&<>"']/g,l=/[<>"']|&(?!#?\w+;)/,s=/[<>"']|&(?!#?\w+;)/g,u={"&":"&","<":"<",">":">",'"':""","'":"'"},c=function(e){return u[e]};function d(e,t){if(t){if(o.test(e))return e.replace(a,c)}else if(l.test(e))return e.replace(s,c);return e}var h=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function f(e){return e.replace(h,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var p=/(^|[^\[])\^/g;function m(e,t){e=e.source||e,t=t||"";var n={replace:function(t,r){return r=(r=r.source||r).replace(p,"$1"),e=e.replace(t,r),n},getRegex:function(){return new RegExp(e,t)}};return n}var g=/[^\w:]/g,v=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function x(e,t,n){if(e){var r;try{r=decodeURIComponent(f(n)).replace(g,"").toLowerCase()}catch(e){return null}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return null}t&&!v.test(n)&&(n=function(e,t){y[" "+e]||(b.test(e)?y[" "+e]=e+"/":y[" "+e]=F(e,"/",!0));var n=-1===(e=y[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(D,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(C,"$1")+t:e+t}(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n}var y={},b=/^[^:]+:\/*[^/]*$/,D=/^([^:]+:)[\s\S]*$/,C=/^([^:]+:\/*[^/]*)[\s\S]*$/;var w={exec:function(){}};function k(e){for(var t,n,r=1;r=0&&"\\"===n[i];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n[0].trim()||n.shift(),n[n.length-1].trim()||n.pop(),n.length>t)n.splice(t);else for(;n.length1;)1&t&&(n+=e),t>>=1,e+=e;return n+e}function T(e,t,n,r){var i=t.href,o=t.title?d(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){r.state.inLink=!0;var l={type:"link",raw:n,href:i,title:o,text:a,tokens:r.inlineTokens(a,[])};return r.state.inLink=!1,l}return{type:"image",raw:n,href:i,title:o,text:d(a)}}var L=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.space=function(e){var t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}},n.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:F(n,"\n")}}},n.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=function(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var r=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=r.length?e.slice(r.length):e})).join("\n")}(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:r}}},n.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var r=F(n,"#");this.options.pedantic?n=r.trim():r&&!/ $/.test(r)||(n=r.trim())}var i={type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:[]};return this.lexer.inline(i.text,i.tokens),i}},n.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},n.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(n,[]),text:n}}},n.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,i,o,a,l,s,u,c,d,h,f,p,m=t[1].trim(),g=m.length>1,v={type:"list",raw:"",ordered:g,start:g?+m.slice(0,-1):"",loose:!1,items:[]};m=g?"\\d{1,9}\\"+m.slice(-1):"\\"+m,this.options.pedantic&&(m=g?m:"[*+-]");for(var x=new RegExp("^( {0,3}"+m+")((?: [^\\n]*)?(?:\\n|$))");e&&(p=!1,t=x.exec(e))&&!this.rules.block.hr.test(e);){if(n=t[0],e=e.substring(n.length),c=t[2].split("\n",1)[0],d=e.split("\n",1)[0],this.options.pedantic?(a=2,f=c.trimLeft()):(a=(a=t[2].search(/[^ ]/))>4?1:a,f=c.slice(a),a+=t[1].length),s=!1,!c&&/^ *$/.test(d)&&(n+=d+"\n",e=e.substring(d.length+1),p=!0),!p)for(var y=new RegExp("^ {0,"+Math.min(3,a-1)+"}(?:[*+-]|\\d{1,9}[.)])");e&&(c=h=e.split("\n",1)[0],this.options.pedantic&&(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!y.test(c));){if(c.search(/[^ ]/)>=a||!c.trim())f+="\n"+c.slice(a);else{if(s)break;f+="\n"+c}s||c.trim()||(s=!0),n+=h+"\n",e=e.substring(h.length+1)}v.loose||(u?v.loose=!0:/\n *\n *$/.test(n)&&(u=!0)),this.options.gfm&&(i=/^\[[ xX]\] /.exec(f))&&(o="[ ] "!==i[0],f=f.replace(/^\[[ xX]\] +/,"")),v.items.push({type:"list_item",raw:n,task:!!i,checked:o,loose:!1,text:f}),v.raw+=n}v.items[v.items.length-1].raw=n.trimRight(),v.items[v.items.length-1].text=f.trimRight(),v.raw=v.raw.trimRight();var b=v.items.length;for(l=0;l1)return!0}return!1}));!v.loose&&D.length&&C&&(v.loose=!0,v.items[l].loose=!0)}return v}},n.html=function(e){var t=this.rules.block.html.exec(e);if(t){var n={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(n.type="paragraph",n.text=this.options.sanitizer?this.options.sanitizer(t[0]):d(t[0]),n.tokens=[],this.lexer.inline(n.text,n.tokens)),n}},n.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},n.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:S(t[1]).map((function(e){return{text:e}})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var r,i,o,a,l=n.align.length;for(r=0;r/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):d(t[0]):t[0]}},n.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;var r=F(n.slice(0,-1),"\\");if((n.length-r.length)%2==0)return}else{var i=function(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=e.length,r=0,i=0;i-1){var o=(0===t[0].indexOf("!")?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,o).trim(),t[3]=""}}var a=t[2],l="";if(this.options.pedantic){var s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a);s&&(a=s[1],l=s[3])}else l=t[3]?t[3].slice(1,-1):"";return a=a.trim(),/^$/.test(n)?a.slice(1):a.slice(1,-1)),T(t,{href:a?a.replace(this.rules.inline._escapes,"$1"):a,title:l?l.replace(this.rules.inline._escapes,"$1"):l},t[0],this.lexer)}},n.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=t[r.toLowerCase()])||!r.href){var i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return T(n,r,n[0],this.lexer)}},n.emStrong=function(e,t,n){void 0===n&&(n="");var r=this.rules.inline.emStrong.lDelim.exec(e);if(r&&(!r[3]||!n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var i=r[1]||r[2]||"";if(!i||i&&(""===n||this.rules.inline.punctuation.exec(n))){var o,a,l=r[0].length-1,s=l,u=0,c="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+l);null!=(r=c.exec(t));)if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6])if(a=o.length,r[3]||r[4])s+=a;else if(!((r[5]||r[6])&&l%3)||(l+a)%3){if(!((s-=a)>0)){if(a=Math.min(a,a+s+u),Math.min(l,a)%2){var d=e.slice(1,l+r.index+a);return{type:"em",raw:e.slice(0,l+r.index+a+1),text:d,tokens:this.lexer.inlineTokens(d,[])}}var h=e.slice(2,l+r.index+a-1);return{type:"strong",raw:e.slice(0,l+r.index+a+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}}else u+=a}}},n.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),r=/[^ ]/.test(n),i=/^ /.test(n)&&/ $/.test(n);return r&&i&&(n=n.substring(1,n.length-1)),n=d(n,!0),{type:"codespan",raw:t[0],text:n}}},n.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},n.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}},n.autolink=function(e,t){var n,r,i=this.rules.inline.autolink.exec(e);if(i)return r="@"===i[2]?"mailto:"+(n=d(this.options.mangle?t(i[1]):i[1])):n=d(i[1]),{type:"link",raw:i[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}},n.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,i;if("@"===n[2])i="mailto:"+(r=d(this.options.mangle?t(n[0]):n[0]));else{var o;do{o=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(o!==n[0]);r=d(n[0]),i="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}},n.inlineText=function(e,t){var n,r=this.rules.inline.text.exec(e);if(r)return n=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):d(r[0]):r[0]:d(this.options.smartypants?t(r[0]):r[0]),{type:"text",raw:r[0],text:n}},t}(),M={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:w,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};M.def=m(M.def).replace("label",M._label).replace("title",M._title).getRegex(),M.bullet=/(?:[*+-]|\d{1,9}[.)])/,M.listItemStart=m(/^( *)(bull) */).replace("bull",M.bullet).getRegex(),M.list=m(M.list).replace(/bull/g,M.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+M.def.source+")").getRegex(),M._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",M._comment=/|$)/,M.html=m(M.html,"i").replace("comment",M._comment).replace("tag",M._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),M.paragraph=m(M._paragraph).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",M._tag).getRegex(),M.blockquote=m(M.blockquote).replace("paragraph",M.paragraph).getRegex(),M.normal=k({},M),M.gfm=k({},M.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),M.gfm.table=m(M.gfm.table).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",M._tag).getRegex(),M.gfm.paragraph=m(M._paragraph).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",M.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",M._tag).getRegex(),M.pedantic=k({},M.normal,{html:m("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",M._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:w,paragraph:m(M.normal._paragraph).replace("hr",M.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",M.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var B={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:w,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:w,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}B._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",B.punctuation=m(B.punctuation).replace(/punctuation/g,B._punctuation).getRegex(),B.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,B.escapedEmSt=/\\\*|\\_/g,B._comment=m(M._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),B.emStrong.lDelim=m(B.emStrong.lDelim).replace(/punct/g,B._punctuation).getRegex(),B.emStrong.rDelimAst=m(B.emStrong.rDelimAst,"g").replace(/punct/g,B._punctuation).getRegex(),B.emStrong.rDelimUnd=m(B.emStrong.rDelimUnd,"g").replace(/punct/g,B._punctuation).getRegex(),B._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,B._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,B._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,B.autolink=m(B.autolink).replace("scheme",B._scheme).replace("email",B._email).getRegex(),B._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,B.tag=m(B.tag).replace("comment",B._comment).replace("attribute",B._attribute).getRegex(),B._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,B._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,B._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,B.link=m(B.link).replace("label",B._label).replace("href",B._href).replace("title",B._title).getRegex(),B.reflink=m(B.reflink).replace("label",B._label).replace("ref",M._label).getRegex(),B.nolink=m(B.nolink).replace("ref",M._label).getRegex(),B.reflinkSearch=m(B.reflinkSearch,"g").replace("reflink",B.reflink).replace("nolink",B.nolink).getRegex(),B.normal=k({},B),B.pedantic=k({},B.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:m(/^!?\[(label)\]\((.*?)\)/).replace("label",B._label).getRegex(),reflink:m(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",B._label).getRegex()}),B.gfm=k({},B.normal,{escape:m(B.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\0?t[t.length-1].raw+="\n":t.push(n);else if(n=this.tokenizer.code(e))e=e.substring(n.raw.length),!(r=t[t.length-1])||"paragraph"!==r.type&&"text"!==r.type?t.push(n):(r.raw+="\n"+n.raw,r.text+="\n"+n.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text);else if(n=this.tokenizer.fences(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.list(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.html(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.def(e))e=e.substring(n.raw.length),!(r=t[t.length-1])||"paragraph"!==r.type&&"text"!==r.type?this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title}):(r.raw+="\n"+n.raw,r.text+="\n"+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text);else if(n=this.tokenizer.table(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.lheading(e))e=e.substring(n.raw.length),t.push(n);else if(i=e,this.options.extensions&&this.options.extensions.startBlock&&function(){var t=1/0,n=e.slice(1),r=void 0;a.options.extensions.startBlock.forEach((function(e){"number"==typeof(r=e.call({lexer:this},n))&&r>=0&&(t=Math.min(t,r))})),t<1/0&&t>=0&&(i=e.substring(0,t+1))}(),this.state.top&&(n=this.tokenizer.paragraph(i)))r=t[t.length-1],o&&"paragraph"===r.type?(r.raw+="\n"+n.raw,r.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n),o=i.length!==e.length,e=e.substring(n.raw.length);else if(n=this.tokenizer.text(e))e=e.substring(n.raw.length),(r=t[t.length-1])&&"text"===r.type?(r.raw+="\n"+n.raw,r.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n);else if(e){var l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}throw new Error(l)}return this.state.top=!0,t},a.inline=function(e,t){this.inlineQueue.push({src:e,tokens:t})},a.inlineTokens=function(e,t){var n,r,i,o=this;void 0===t&&(t=[]);var a,l,s,u=e;if(this.tokens.links){var c=Object.keys(this.tokens.links);if(c.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(u));)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(u=u.slice(0,a.index)+"["+E("a",a[0].length-2)+"]"+u.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(u));)u=u.slice(0,a.index)+"["+E("a",a[0].length-2)+"]"+u.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(u));)u=u.slice(0,a.index)+"++"+u.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(l||(s=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(r){return!!(n=r.call({lexer:o},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)}))))if(n=this.tokenizer.escape(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.tag(e))e=e.substring(n.raw.length),(r=t[t.length-1])&&"text"===n.type&&"text"===r.type?(r.raw+=n.raw,r.text+=n.text):t.push(n);else if(n=this.tokenizer.link(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(n.raw.length),(r=t[t.length-1])&&"text"===n.type&&"text"===r.type?(r.raw+=n.raw,r.text+=n.text):t.push(n);else if(n=this.tokenizer.emStrong(e,u,s))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.codespan(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.br(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.del(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.autolink(e,O))e=e.substring(n.raw.length),t.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(e,O))){if(i=e,this.options.extensions&&this.options.extensions.startInline&&function(){var t=1/0,n=e.slice(1),r=void 0;o.options.extensions.startInline.forEach((function(e){"number"==typeof(r=e.call({lexer:this},n))&&r>=0&&(t=Math.min(t,r))})),t<1/0&&t>=0&&(i=e.substring(0,t+1))}(),n=this.tokenizer.inlineText(i,N))e=e.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(s=n.raw.slice(-1)),l=!0,(r=t[t.length-1])&&"text"===r.type?(r.raw+=n.raw,r.text+=n.text):t.push(n);else if(e){var d="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}else e=e.substring(n.raw.length),t.push(n);return t},r=n,o=[{key:"rules",get:function(){return{block:M,inline:B}}}],(i=null)&&t(r.prototype,i),o&&t(r,o),Object.defineProperty(r,"prototype",{writable:!1}),n}(),z=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.code=function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var i=this.options.highlight(e,r);null!=i&&i!==e&&(n=!0,e=i)}return e=e.replace(/\n$/,"")+"\n",r?'
'+(n?e:d(e,!0))+"
\n":"
"+(n?e:d(e,!0))+"
\n"},n.blockquote=function(e){return"
\n"+e+"
\n"},n.html=function(e){return e},n.heading=function(e,t,n,r){return this.options.headerIds?"'+e+"\n":""+e+"\n"},n.hr=function(){return this.options.xhtml?"
\n":"
\n"},n.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},n.listitem=function(e){return"
  • "+e+"
  • \n"},n.checkbox=function(e){return" "},n.paragraph=function(e){return"

    "+e+"

    \n"},n.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},n.tablerow=function(e){return"\n"+e+"\n"},n.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},n.strong=function(e){return""+e+""},n.em=function(e){return""+e+""},n.codespan=function(e){return""+e+""},n.br=function(){return this.options.xhtml?"
    ":"
    "},n.del=function(e){return""+e+""},n.link=function(e,t,n){if(null===(e=x(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"},n.image=function(e,t,n){if(null===(e=x(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">"},n.text=function(e){return e},t}(),H=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),R=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do{n=e+"-"+ ++r}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),P=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new z,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new H,this.slugger=new R}t.parse=function(e,n){return new t(n).parse(e)},t.parseInline=function(e,n){return new t(n).parseInline(e)};var n=t.prototype;return n.parse=function(e,t){void 0===t&&(t=!0);var n,r,i,o,a,l,s,u,c,d,h,p,m,g,v,x,y,b,D,C="",w=e.length;for(n=0;n0&&"paragraph"===v.tokens[0].type?(v.tokens[0].text=b+" "+v.tokens[0].text,v.tokens[0].tokens&&v.tokens[0].tokens.length>0&&"text"===v.tokens[0].tokens[0].type&&(v.tokens[0].tokens[0].text=b+" "+v.tokens[0].tokens[0].text)):v.tokens.unshift({type:"text",text:b}):g+=b),g+=this.parse(v.tokens,m),c+=this.renderer.listitem(g,y,x);C+=this.renderer.list(c,h,p);continue;case"html":C+=this.renderer.html(d.text);continue;case"paragraph":C+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(c=d.tokens?this.parseInline(d.tokens):d.text;n+1An error occurred:

    "+d(e.message+"",!0)+"
    ";throw e}}_.options=_.setOptions=function(t){var n;return k(_.defaults,t),n=_.defaults,e.defaults=n,_},_.getDefaults=i,_.defaults=e.defaults,_.use=function(){for(var e=arguments.length,t=new Array(e),n=0;nAn error occurred:

    "+d(e.message+"",!0)+"
    ";throw e}},_.Parser=P,_.parser=P.parse,_.Renderer=z,_.TextRenderer=H,_.Lexer=I,_.lexer=I.lex,_.Tokenizer=L,_.Slugger=R,_.parse=_;var W=_.options,j=_.setOptions,q=_.use,U=_.walkTokens,$=_.parseInline,G=_,V=P.parse,X=I.lex;e.Lexer=I,e.Parser=P,e.Renderer=z,e.Slugger=R,e.TextRenderer=H,e.Tokenizer=L,e.getDefaults=i,e.lexer=X,e.marked=_,e.options=W,e.parse=G,e.parseInline=$,e.parser=V,e.setOptions=j,e.use=q,e.walkTokens=U,Object.defineProperty(e,"__esModule",{value:!0})}))},{}],16:[function(e,t,n){(function(n){(function(){var r;!function(){"use strict";(r=function(e,t,r,i){i=i||{},this.dictionary=null,this.rules={},this.dictionaryTable={},this.compoundRules=[],this.compoundRuleCodes={},this.replacementTable=[],this.flags=i.flags||{},this.memoized={},this.loaded=!1;var o,a,l,s,u,c=this;function d(e,t){var n=c._readFile(e,null,i.asyncLoad);i.asyncLoad?n.then((function(e){t(e)})):t(n)}function h(e){t=e,r&&p()}function f(e){r=e,t&&p()}function p(){for(c.rules=c._parseAFF(t),c.compoundRuleCodes={},a=0,s=c.compoundRules.length;a0&&(b.continuationClasses=x),"."!==y&&(b.match="SFX"===d?new RegExp(y+"$"):new RegExp("^"+y)),"0"!=m&&(b.remove="SFX"===d?new RegExp(m+"$"):m),p.push(b)}s[h]={type:d,combineable:"Y"==f,entries:p},i+=n}else if("COMPOUNDRULE"===d){for(o=i+1,l=i+1+(n=parseInt(c[1],10));o0&&(null===n[e]&&(n[e]=[]),n[e].push(t))}for(var i=1,o=t.length;i1){var u=this.parseRuleCodes(l[1]);"NEEDAFFIX"in this.flags&&-1!=u.indexOf(this.flags.NEEDAFFIX)||r(s,u);for(var c=0,d=u.length;c=this.flags.COMPOUNDMIN)for(t=0,n=this.compoundRules.length;t1&&c[1][1]!==c[1][0]&&(o=c[0]+c[1][1]+c[1][0]+c[1].substring(2),t&&!l.check(o)||(o in a?a[o]+=1:a[o]=1)),c[1]){var d=c[1].substring(0,1).toUpperCase()===c[1].substring(0,1)?"uppercase":"lowercase";for(r=0;rr?1:t[0].localeCompare(e[0])})).reverse();var u=[],c="lowercase";e.toUpperCase()===e?c="uppercase":e.substr(0,1).toUpperCase()+e.substr(1).toLowerCase()===e&&(c="capitalized");var d=t;for(n=0;n)+?/g),s={toggleBold:C,toggleItalic:w,drawLink:I,toggleHeadingSmaller:A,toggleHeadingBigger:E,drawImage:z,toggleBlockquote:F,toggleOrderedList:N,toggleUnorderedList:B,toggleCodeBlock:S,togglePreview:U,toggleStrikethrough:k,toggleHeading1:T,toggleHeading2:L,toggleHeading3:M,cleanBlock:O,drawTable:P,drawHorizontalRule:_,undo:W,redo:j,toggleSideBySide:q,toggleFullScreen:D},u={toggleBold:"Cmd-B",toggleItalic:"Cmd-I",drawLink:"Cmd-K",toggleHeadingSmaller:"Cmd-H",toggleHeadingBigger:"Shift-Cmd-H",cleanBlock:"Cmd-E",drawImage:"Cmd-Alt-I",toggleBlockquote:"Cmd-'",toggleOrderedList:"Cmd-Alt-L",toggleUnorderedList:"Cmd-L",toggleCodeBlock:"Cmd-Alt-C",togglePreview:"Cmd-P",toggleSideBySide:"F9",toggleFullScreen:"F11"},c=function(){var e,t=!1;return e=navigator.userAgent||navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e.substr(0,4)))&&(t=!0),t};function d(e){return e=a?e.replace("Ctrl","Cmd"):e.replace("Cmd","Ctrl")}var h={};function f(e){return h[e]||(h[e]=new RegExp("\\s*"+e+"(\\s*)","g"))}function p(e,t){if(e&&t){var n=f(t);e.className.match(n)||(e.className+=" "+t)}}function m(e,t){if(e&&t){var n=f(t);e.className.match(n)&&(e.className=e.className.replace(n,"$1"))}}function g(e,t,n,r){var i=v(e,!1,t,n,"button",r);i.className+=" easymde-dropdown",i.onclick=function(){i.focus()};var o=document.createElement("div");o.className="easymde-dropdown-content";for(var a=0;a=0&&!n(h=s.getLineHandle(o));o--);var g,v,x,y,b=r(s.getTokenAt({line:o,ch:1})).fencedChars;n(s.getLineHandle(u.line))?(g="",v=u.line):n(s.getLineHandle(u.line-1))?(g="",v=u.line-1):(g=b+"\n",v=u.line),n(s.getLineHandle(c.line))?(x="",y=c.line,0===c.ch&&(y+=1)):0!==c.ch&&n(s.getLineHandle(c.line+1))?(x="",y=c.line+1):(x=b+"\n",y=c.line+1),0===c.ch&&(y-=1),s.operation((function(){s.replaceRange(x,{line:y,ch:0},{line:y+(x?0:1),ch:0}),s.replaceRange(g,{line:v,ch:0},{line:v+(g?0:1),ch:0})})),s.setSelection({line:v+(g?1:0),ch:0},{line:y+(g?1:-1),ch:0}),s.focus()}else{var D=u.line;if(n(s.getLineHandle(u.line))&&("fenced"===i(s,u.line+1)?(o=u.line,D=u.line+1):(a=u.line,D=u.line-1)),void 0===o)for(o=D;o>=0&&!n(h=s.getLineHandle(o));o--);if(void 0===a)for(l=s.lineCount(),a=D;a=0;o--)if(!(h=s.getLineHandle(o)).text.match(/^\s*$/)&&"indented"!==i(s,o,h)){o+=1;break}for(l=s.lineCount(),a=u.line;a ]+|[0-9]+(.|\)))[ ]*/,""),e.replaceRange(t,{line:i,ch:0},{line:i,ch:99999999999999})}(e.codemirror)}function I(e){var t=e.codemirror,n=y(t),r=e.options,i="https://";if(r.promptURLs&&!(i=prompt(r.promptTexts.link,"https://")))return!1;$(t,n.link,r.insertTexts.link,i)}function z(e){var t=e.codemirror,n=y(t),r=e.options,i="https://";if(r.promptURLs&&!(i=prompt(r.promptTexts.image,"https://")))return!1;$(t,n.image,r.insertTexts.image,i)}function H(e){e.openBrowseFileWindow()}function R(e,t){var n=e.codemirror,r=y(n),i=e.options,o=t.substr(t.lastIndexOf("/")+1),a=o.substring(o.lastIndexOf(".")+1).replace(/\?.*$/,"").toLowerCase();if(["png","jpg","jpeg","gif","svg"].includes(a))$(n,r.image,i.insertTexts.uploadedImage,t);else{var l=i.insertTexts.link;l[0]="["+o,$(n,r.link,l,t)}e.updateStatusBar("upload-image",e.options.imageTexts.sbOnUploaded.replace("#image_name#",o)),setTimeout((function(){e.updateStatusBar("upload-image",e.options.imageTexts.sbInit)}),1e3)}function P(e){var t=e.codemirror,n=y(t),r=e.options;$(t,n.table,r.insertTexts.table)}function _(e){var t=e.codemirror,n=y(t),r=e.options;$(t,n.image,r.insertTexts.horizontalRule)}function W(e){var t=e.codemirror;t.undo(),t.focus()}function j(e){var t=e.codemirror;t.redo(),t.focus()}function q(e){var t=e.codemirror,n=t.getWrapperElement(),r=n.nextSibling,i=e.toolbarElements&&e.toolbarElements["side-by-side"],o=!1,a=n.parentNode;/editor-preview-active-side/.test(r.className)?(!1===e.options.sideBySideFullscreen&&m(a,"sided--no-fullscreen"),r.className=r.className.replace(/\s*editor-preview-active-side\s*/g,""),i&&(i.className=i.className.replace(/\s*active\s*/g,"")),n.className=n.className.replace(/\s*CodeMirror-sided\s*/g," ")):(setTimeout((function(){t.getOption("fullScreen")||(!1===e.options.sideBySideFullscreen?p(a,"sided--no-fullscreen"):D(e)),r.className+=" editor-preview-active-side"}),1),i&&(i.className+=" active"),n.className+=" CodeMirror-sided",o=!0);var l=n.lastChild;if(/editor-preview-active/.test(l.className)){l.className=l.className.replace(/\s*editor-preview-active\s*/g,"");var s=e.toolbarElements.preview,u=e.toolbar_div;s.className=s.className.replace(/\s*active\s*/g,""),u.className=u.className.replace(/\s*disabled-for-preview*/g,"")}if(t.sideBySideRenderingFunction||(t.sideBySideRenderingFunction=function(){var t=e.options.previewRender(e.value(),r);null!=t&&(r.innerHTML=t)}),o){var c=e.options.previewRender(e.value(),r);null!=c&&(r.innerHTML=c),t.on("update",t.sideBySideRenderingFunction)}else t.off("update",t.sideBySideRenderingFunction);t.refresh()}function U(e){var t=e.codemirror,n=t.getWrapperElement(),r=e.toolbar_div,i=!!e.options.toolbar&&e.toolbarElements.preview,o=n.lastChild,a=t.getWrapperElement().nextSibling;if(/editor-preview-active-side/.test(a.className)&&q(e),!o||!/editor-preview-full/.test(o.className)){if((o=document.createElement("div")).className="editor-preview-full",e.options.previewClass)if(Array.isArray(e.options.previewClass))for(var l=0;l\s+/,"unordered-list":r,"ordered-list":r},u=function(e,t,o){var a=r.exec(t),l=function(e,t){return{quote:">","unordered-list":n,"ordered-list":"%%i."}[e].replace("%%i",t)}(e,c);return null!==a?(function(e,t){var r=new RegExp({quote:">","unordered-list":"\\"+n,"ordered-list":"\\d+."}[e]);return t&&r.test(t)}(e,a[2])&&(l=""),t=a[1]+l+a[3]+t.replace(i,"").replace(s[e],"$1")):0==o&&(t=l+" "+t),t},c=1,d=a.line;d<=l.line;d++)!function(n){var r=e.getLine(n);o[t]?r=r.replace(s[t],"$1"):("unordered-list"==t&&(r=u("ordered-list",r,!0)),r=u(t,r,!1),c+=1),e.replaceRange(r,{line:n,ch:0},{line:n,ch:99999999999999})}(d);e.focus()}}function X(e,t,n,r){if(!/editor-preview-active/.test(e.codemirror.getWrapperElement().lastChild.className)){r=void 0===r?n:r;var i,o=e.codemirror,a=y(o),l=n,s=r,u=o.getCursor("start"),c=o.getCursor("end");a[t]?(l=(i=o.getLine(u.line)).slice(0,u.ch),s=i.slice(u.ch),"bold"==t?(l=l.replace(/(\*\*|__)(?![\s\S]*(\*\*|__))/,""),s=s.replace(/(\*\*|__)/,"")):"italic"==t?(l=l.replace(/(\*|_)(?![\s\S]*(\*|_))/,""),s=s.replace(/(\*|_)/,"")):"strikethrough"==t&&(l=l.replace(/(\*\*|~~)(?![\s\S]*(\*\*|~~))/,""),s=s.replace(/(\*\*|~~)/,"")),o.replaceRange(l+s,{line:u.line,ch:0},{line:u.line,ch:99999999999999}),"bold"==t||"strikethrough"==t?(u.ch-=2,u!==c&&(c.ch-=2)):"italic"==t&&(u.ch-=1,u!==c&&(c.ch-=1))):(i=o.getSelection(),"bold"==t?i=(i=i.split("**").join("")).split("__").join(""):"italic"==t?i=(i=i.split("*").join("")).split("_").join(""):"strikethrough"==t&&(i=i.split("~~").join("")),o.replaceSelection(l+i+s),u.ch+=n.length,c.ch=u.ch+i.length),o.setSelection(u,c),o.focus()}}function K(e,t){if(Math.abs(e)<1024)return""+e+t[0];var n=0;do{e/=1024,++n}while(Math.abs(e)>=1024&&n=19968?n+=t[r].length:n+=1;return n}var J={bold:{name:"bold",action:C,className:"fa fa-bold",title:"Bold",default:!0},italic:{name:"italic",action:w,className:"fa fa-italic",title:"Italic",default:!0},strikethrough:{name:"strikethrough",action:k,className:"fa fa-strikethrough",title:"Strikethrough"},heading:{name:"heading",action:A,className:"fa fa-header fa-heading",title:"Heading",default:!0},"heading-smaller":{name:"heading-smaller",action:A,className:"fa fa-header fa-heading header-smaller",title:"Smaller Heading"},"heading-bigger":{name:"heading-bigger",action:E,className:"fa fa-header fa-heading header-bigger",title:"Bigger Heading"},"heading-1":{name:"heading-1",action:T,className:"fa fa-header fa-heading header-1",title:"Big Heading"},"heading-2":{name:"heading-2",action:L,className:"fa fa-header fa-heading header-2",title:"Medium Heading"},"heading-3":{name:"heading-3",action:M,className:"fa fa-header fa-heading header-3",title:"Small Heading"},"separator-1":{name:"separator-1"},code:{name:"code",action:S,className:"fa fa-code",title:"Code"},quote:{name:"quote",action:F,className:"fa fa-quote-left",title:"Quote",default:!0},"unordered-list":{name:"unordered-list",action:B,className:"fa fa-list-ul",title:"Generic List",default:!0},"ordered-list":{name:"ordered-list",action:N,className:"fa fa-list-ol",title:"Numbered List",default:!0},"clean-block":{name:"clean-block",action:O,className:"fa fa-eraser",title:"Clean block"},"separator-2":{name:"separator-2"},link:{name:"link",action:I,className:"fa fa-link",title:"Create Link",default:!0},image:{name:"image",action:z,className:"fa fa-image",title:"Insert Image",default:!0},"upload-image":{name:"upload-image",action:H,className:"fa fa-image",title:"Import an image"},table:{name:"table",action:P,className:"fa fa-table",title:"Insert Table"},"horizontal-rule":{name:"horizontal-rule",action:_,className:"fa fa-minus",title:"Insert Horizontal Line"},"separator-3":{name:"separator-3"},preview:{name:"preview",action:U,className:"fa fa-eye",noDisable:!0,title:"Toggle Preview",default:!0},"side-by-side":{name:"side-by-side",action:q,className:"fa fa-columns",noDisable:!0,noMobile:!0,title:"Toggle Side by Side",default:!0},fullscreen:{name:"fullscreen",action:D,className:"fa fa-arrows-alt",noDisable:!0,noMobile:!0,title:"Toggle Fullscreen",default:!0},"separator-4":{name:"separator-4"},guide:{name:"guide",action:"https://www.markdownguide.org/basic-syntax/",className:"fa fa-question-circle",noDisable:!0,title:"Markdown Guide",default:!0},"separator-5":{name:"separator-5"},undo:{name:"undo",action:W,className:"fa fa-undo",noDisable:!0,title:"Undo"},redo:{name:"redo",action:j,className:"fa fa-repeat fa-redo",noDisable:!0,title:"Redo"}},ee={link:["[","](#url#)"],image:["![](","#url#)"],uploadedImage:["![](#url#)",""],table:["","\n\n| Column 1 | Column 2 | Column 3 |\n| -------- | -------- | -------- |\n| Text | Text | Text |\n\n"],horizontalRule:["","\n\n-----\n\n"]},te={link:"URL for the link:",image:"URL of the image:"},ne={locale:"en-US",format:{hour:"2-digit",minute:"2-digit"}},re={bold:"**",code:"```",italic:"*"},ie={sbInit:"Attach files by drag and dropping or pasting from clipboard.",sbOnDragEnter:"Drop image to upload it.",sbOnDrop:"Uploading image #images_names#...",sbProgress:"Uploading #file_name#: #progress#%",sbOnUploaded:"Uploaded #image_name#",sizeUnits:" B, KB, MB"},oe={noFileGiven:"You must select a file.",typeNotAllowed:"This image type is not allowed.",fileTooLarge:"Image #image_name# is too big (#image_size#).\nMaximum file size is #image_max_size#.",importError:"Something went wrong when uploading the image #image_name#."};function ae(e){(e=e||{}).parent=this;var t=!0;if(!1===e.autoDownloadFontAwesome&&(t=!1),!0!==e.autoDownloadFontAwesome)for(var n=document.styleSheets,r=0;r-1&&(t=!1);if(t){var i=document.createElement("link");i.rel="stylesheet",i.href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css",document.getElementsByTagName("head")[0].appendChild(i)}if(e.element)this.element=e.element;else if(null===e.element)return void console.log("EasyMDE: Error. No element was found.");if(void 0===e.toolbar)for(var o in e.toolbar=[],J)Object.prototype.hasOwnProperty.call(J,o)&&(-1!=o.indexOf("separator-")&&e.toolbar.push("|"),(!0===J[o].default||e.showIcons&&e.showIcons.constructor===Array&&-1!=e.showIcons.indexOf(o))&&e.toolbar.push(o));if(Object.prototype.hasOwnProperty.call(e,"previewClass")||(e.previewClass="editor-preview"),Object.prototype.hasOwnProperty.call(e,"status")||(e.status=["autosave","lines","words","cursor"],e.uploadImage&&e.status.unshift("upload-image")),e.previewRender||(e.previewRender=function(e){return this.parent.markdown(e)}),e.parsingConfig=Y({highlightFormatting:!0},e.parsingConfig||{}),e.insertTexts=Y({},ee,e.insertTexts||{}),e.promptTexts=Y({},te,e.promptTexts||{}),e.blockStyles=Y({},re,e.blockStyles||{}),null!=e.autosave&&(e.autosave.timeFormat=Y({},ne,e.autosave.timeFormat||{})),e.shortcuts=Y({},u,e.shortcuts||{}),e.maxHeight=e.maxHeight||void 0,e.direction=e.direction||"ltr",void 0!==e.maxHeight?e.minHeight=e.maxHeight:e.minHeight=e.minHeight||"300px",e.errorCallback=e.errorCallback||function(e){alert(e)},e.uploadImage=e.uploadImage||!1,e.imageMaxSize=e.imageMaxSize||2097152,e.imageAccept=e.imageAccept||"image/png, image/jpeg",e.imageTexts=Y({},ie,e.imageTexts||{}),e.errorMessages=Y({},oe,e.errorMessages||{}),null!=e.autosave&&null!=e.autosave.unique_id&&""!=e.autosave.unique_id&&(e.autosave.uniqueId=e.autosave.unique_id),e.overlayMode&&void 0===e.overlayMode.combine&&(e.overlayMode.combine=!0),this.options=e,this.render(),!e.initialValue||this.options.autosave&&!0===this.options.autosave.foundSavedValue||this.value(e.initialValue),e.uploadImage){var a=this;this.codemirror.on("dragenter",(function(e,t){a.updateStatusBar("upload-image",a.options.imageTexts.sbOnDragEnter),t.stopPropagation(),t.preventDefault()})),this.codemirror.on("dragend",(function(e,t){a.updateStatusBar("upload-image",a.options.imageTexts.sbInit),t.stopPropagation(),t.preventDefault()})),this.codemirror.on("dragleave",(function(e,t){a.updateStatusBar("upload-image",a.options.imageTexts.sbInit),t.stopPropagation(),t.preventDefault()})),this.codemirror.on("dragover",(function(e,t){a.updateStatusBar("upload-image",a.options.imageTexts.sbOnDragEnter),t.stopPropagation(),t.preventDefault()})),this.codemirror.on("drop",(function(t,n){n.stopPropagation(),n.preventDefault(),e.imageUploadFunction?a.uploadImagesUsingCustomFunction(e.imageUploadFunction,n.dataTransfer.files):a.uploadImages(n.dataTransfer.files)})),this.codemirror.on("paste",(function(t,n){e.imageUploadFunction?a.uploadImagesUsingCustomFunction(e.imageUploadFunction,n.clipboardData.files):a.uploadImages(n.clipboardData.files)}))}}function le(){if("object"!=typeof localStorage)return!1;try{localStorage.setItem("smde_localStorage",1),localStorage.removeItem("smde_localStorage")}catch(e){return!1}return!0}ae.prototype.uploadImages=function(e,t,n){if(0!==e.length){for(var r=[],i=0;i$/,' target="_blank">');e=e.replace(n,r)}}return e}(r))}},ae.prototype.render=function(e){if(e||(e=this.element||document.getElementsByTagName("textarea")[0]),!this._rendered||this._rendered!==e){this.element=e;var t,n,o=this.options,a=this,l={};for(var u in o.shortcuts)null!==o.shortcuts[u]&&null!==s[u]&&function(e){l[d(o.shortcuts[e])]=function(){var t=s[e];"function"==typeof t?t(a):"string"==typeof t&&window.open(t,"_blank")}}(u);if(l.Enter="newlineAndIndentContinueMarkdownList",l.Tab="tabAndIndentMarkdownList",l["Shift-Tab"]="shiftTabAndUnindentMarkdownList",l.Esc=function(e){e.getOption("fullScreen")&&D(a)},this.documentOnKeyDown=function(e){27==(e=e||window.event).keyCode&&a.codemirror.getOption("fullScreen")&&D(a)},document.addEventListener("keydown",this.documentOnKeyDown,!1),o.overlayMode?(r.defineMode("overlay-mode",(function(e){return r.overlayMode(r.getMode(e,!1!==o.spellChecker?"spell-checker":"gfm"),o.overlayMode.mode,o.overlayMode.combine)})),t="overlay-mode",(n=o.parsingConfig).gitHubSpice=!1):((t=o.parsingConfig).name="gfm",t.gitHubSpice=!1),!1!==o.spellChecker&&(t="spell-checker",(n=o.parsingConfig).name="gfm",n.gitHubSpice=!1,"function"==typeof o.spellChecker?o.spellChecker({codeMirrorInstance:r}):i({codeMirrorInstance:r})),this.codemirror=r.fromTextArea(e,{mode:t,backdrop:n,theme:null!=o.theme?o.theme:"easymde",tabSize:null!=o.tabSize?o.tabSize:2,indentUnit:null!=o.tabSize?o.tabSize:2,indentWithTabs:!1!==o.indentWithTabs,lineNumbers:!0===o.lineNumbers,autofocus:!0===o.autofocus,extraKeys:l,direction:o.direction,lineWrapping:!1!==o.lineWrapping,allowDropFileTypes:["text/plain"],placeholder:o.placeholder||e.getAttribute("placeholder")||"",styleSelectedText:null!=o.styleSelectedText?o.styleSelectedText:!c(),scrollbarStyle:null!=o.scrollbarStyle?o.scrollbarStyle:"native",configureMouse:function(e,t,n){return{addNew:!1}},inputStyle:null!=o.inputStyle?o.inputStyle:c()?"contenteditable":"textarea",spellcheck:null==o.nativeSpellcheck||o.nativeSpellcheck,autoRefresh:null!=o.autoRefresh&&o.autoRefresh}),this.codemirror.getScrollerElement().style.minHeight=o.minHeight,void 0!==o.maxHeight&&(this.codemirror.getScrollerElement().style.height=o.maxHeight),!0===o.forceSync){var h=this.codemirror;h.on("change",(function(){h.save()}))}this.gui={};var f=document.createElement("div");f.classList.add("EasyMDEContainer");var p=this.codemirror.getWrapperElement();p.parentNode.insertBefore(f,p),f.appendChild(p),!1!==o.toolbar&&(this.gui.toolbar=this.createToolbar()),!1!==o.status&&(this.gui.statusbar=this.createStatusbar()),null!=o.autosave&&!0===o.autosave.enabled&&(this.autosave(),this.codemirror.on("change",(function(){clearTimeout(a._autosave_timeout),a._autosave_timeout=setTimeout((function(){a.autosave()}),a.options.autosave.submit_delay||a.options.autosave.delay||1e3)})));var m=this;this.codemirror.on("update",(function(){o.previewImagesInEditor&&f.querySelectorAll(".cm-image-marker").forEach((function(e){var t=e.parentElement;if(t.innerText.match(/^!\[.*?\]\(.*\)/g)&&!t.hasAttribute("data-img-src")){var n=t.innerText.match("\\((.*)\\)");if(window.EMDEimagesCache||(window.EMDEimagesCache={}),n&&n.length>=2){var r=n[1];if(window.EMDEimagesCache[r])v(t,window.EMDEimagesCache[r]);else{var i=document.createElement("img");i.onload=function(){window.EMDEimagesCache[r]={naturalWidth:i.naturalWidth,naturalHeight:i.naturalHeight,url:r},v(t,window.EMDEimagesCache[r])},i.src=r}}}}))})),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element;var g=this.codemirror;setTimeout(function(){g.refresh()}.bind(g),0)}function v(e,t){var n,r;e.setAttribute("data-img-src",t.url),e.setAttribute("style","--bg-image:url("+t.url+");--width:"+t.naturalWidth+"px;--height:"+(n=t.naturalWidth,r=t.naturalHeight,nthis.options.imageMaxSize)i(o(this.options.errorMessages.fileTooLarge));else{var a=new FormData;a.append("image",e),r.options.imageCSRFToken&&a.append("csrfmiddlewaretoken",r.options.imageCSRFToken);var l=new XMLHttpRequest;l.upload.onprogress=function(t){if(t.lengthComputable){var n=""+Math.round(100*t.loaded/t.total);r.updateStatusBar("upload-image",r.options.imageTexts.sbProgress.replace("#file_name#",e.name).replace("#progress#",n))}},l.open("POST",this.options.imageUploadEndpoint),l.onload=function(){try{var e=JSON.parse(this.responseText)}catch(e){return console.error("EasyMDE: The server did not return a valid json."),void i(o(r.options.errorMessages.importError))}200===this.status&&e&&!e.error&&e.data&&e.data.filePath?t((r.options.imagePathAbsolute?"":window.location.origin+"/")+e.data.filePath):e.error&&e.error in r.options.errorMessages?i(o(r.options.errorMessages[e.error])):e.error?i(o(e.error)):(console.error("EasyMDE: Received an unexpected response after uploading the image."+this.status+" ("+this.statusText+")"),i(o(r.options.errorMessages.importError)))},l.onerror=function(e){console.error("EasyMDE: An unexpected error occurred when trying to upload the image."+e.target.status+" ("+e.target.statusText+")"),i(r.options.errorMessages.importError)},l.send(a)}},ae.prototype.uploadImageUsingCustomFunction=function(e,t){var n=this;e.apply(this,[t,function(e){R(n,e)},function(e){var r=function(e){var r=n.options.imageTexts.sizeUnits.split(",");return e.replace("#image_name#",t.name).replace("#image_size#",K(t.size,r)).replace("#image_max_size#",K(n.options.imageMaxSize,r))}(e);n.updateStatusBar("upload-image",r),setTimeout((function(){n.updateStatusBar("upload-image",n.options.imageTexts.sbInit)}),1e4),n.options.errorCallback(r)}])},ae.prototype.setPreviewMaxHeight=function(){var e=this.codemirror.getWrapperElement(),t=e.nextSibling,n=parseInt(window.getComputedStyle(e).paddingTop),r=parseInt(window.getComputedStyle(e).borderTopWidth),i=(parseInt(this.options.maxHeight)+2*n+2*r).toString()+"px";t.style.height=i},ae.prototype.createSideBySide=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;if(!n||!/editor-preview-side/.test(n.className)){if((n=document.createElement("div")).className="editor-preview-side",this.options.previewClass)if(Array.isArray(this.options.previewClass))for(var r=0;r", delay: 300, options: { @@ -3461,7 +3461,7 @@ var widgetsMenu = $.widget( "ui.menu", { /*! - * jQuery UI Autocomplete 1.12.1 + * jQuery UI Autocomplete 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3481,7 +3481,7 @@ var widgetsMenu = $.widget( "ui.menu", { $.widget( "ui.autocomplete", { - version: "1.12.1", + version: "1.13.0", defaultElement: "", options: { appendTo: null, diff --git a/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.min.js b/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.min.js index 9a48ddd9bd..d588421b84 100644 --- a/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.min.js +++ b/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.min.js @@ -1,6 +1,6 @@ -/*! jQuery UI - v1.12.1 - 2021-07-18 +/*! jQuery UI - v1.13.0 - 2021-10-07 * http://jqueryui.com * Includes: widget.js, position.js, disable-selection.js, keycode.js, unique-id.js, widgets/resizable.js, widgets/autocomplete.js, widgets/menu.js, widgets/mouse.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ -!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(z){z.ui=z.ui||{};z.ui.version="1.12.1";var n,i=0,a=Array.prototype.slice;z.cleanData=(n=z.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)try{(e=z._data(i,"events"))&&e.remove&&z(i).triggerHandler("remove")}catch(t){}n(t)}),z.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],l=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=z.Widget),z.isArray(e)&&(e=z.extend.apply(null,[{}].concat(e))),z.expr[":"][l.toLowerCase()]=function(t){return!!z.data(t,l)},z[a]=z[a]||{},s=z[a][t],n=z[a][t]=function(t,e){if(!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},z.extend(n,s,{version:e.version,_proto:z.extend({},e),_childConstructors:[]}),(o=new i).options=z.widget.extend({},o.options),z.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}z.isFunction(s)?h[e]=function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:h[e]=s}),n.prototype=z.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:l}),s?(z.each(s._childConstructors,function(t,e){var i=e.prototype;z.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),z.widget.bridge(t,n),n},z.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=z(e||this.defaultElement||this)[0],this.element=z(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=z(),this.hoverable=z(),this.focusable=z(),this.classesElementLookup={},e!==this&&(z.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=z(e.style?e.ownerDocument:e.document||e),this.window=z(this.document[0].defaultView||this.document[0].parentWindow)),this.options=z.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:z.noop,_create:z.noop,_init:z.noop,destroy:function(){var i=this;this._destroy(),z.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:z.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return z.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=z.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return z("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),h.offset(z.extend(r,{using:t}))})},z.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),z.ui.plugin={add:function(t,e,i){var s,n=z.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&z(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();function t(t){z(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){this._super(t,e),"handles"===t&&(this._removeHandles(),this._setupHandles())},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(z(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=z(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.append(n);this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=z(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=z(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=z(this.handles[e])[0])!==t.target&&!z.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=z(s.containment).scrollLeft()||0,i+=z(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=z(".ui-resizable-"+this.axis).css("cursor"),z("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),z.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(z.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),z("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,r=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&r&&(t.left=a-e.minWidth),s&&r&&(t.left=a-e.maxWidth),h&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return z.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return z.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return z.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return z.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){z.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),z.ui.plugin.add("resizable","animate",{stop:function(e){var i=z(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(z.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&z(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),z.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=z(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof z?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=z(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:z(document),left:0,top:0,width:z(document).width(),height:z(document).height()||document.body.parentNode.scrollHeight}):(i=z(h),s=[],z(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=z(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=z(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=z(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&z(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&z(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),z.ui.plugin.add("resizable","alsoResize",{start:function(){var t=z(this).resizable("instance").options;z(t.alsoResize).each(function(){var t=z(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=z(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};z(s.alsoResize).each(function(){var t=z(this),s=z(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];z.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){z(this).removeData("ui-resizable-alsoresize")}}),z.ui.plugin.add("resizable","ghost",{start:function(){var t=z(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==z.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=z(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=z(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),z.ui.plugin.add("resizable","grid",{resize:function(){var t,e=z(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,l=a[0]||1,r=a[1]||1,u=Math.round((s.width-n.width)/l)*l,c=Math.round((s.height-n.height)/r)*r,d=n.width+u,p=n.height+c,m=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>p;i.grid=a,g&&(d+=l),s&&(p+=r),m&&(d-=l),f&&(p-=r),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=p,e.position.top=o.top-c):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=p,e.position.left=o.left-u):((p-r<=0||d-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(t){var e=z(t.target),i=z(z.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var e,i;this.previousFilter||(e=z(t.target).closest(".ui-menu-item"),i=z(t.currentTarget),e[0]===i[0]&&(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i)))},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(t){this._delay(function(){z.contains(this.element[0],z.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=z(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case z.ui.keyCode.PAGE_UP:this.previousPage(t);break;case z.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case z.ui.keyCode.HOME:this._move("first","first",t);break;case z.ui.keyCode.END:this._move("last","last",t);break;case z.ui.keyCode.UP:this.previous(t);break;case z.ui.keyCode.DOWN:this.next(t);break;case z.ui.keyCode.LEFT:this.collapse(t);break;case z.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case z.ui.keyCode.ENTER:case z.ui.keyCode.SPACE:this._activate(t);break;case z.ui.keyCode.ESCAPE:this.collapse(t);break;default:n=!1,e=this.previousFilter||"",s=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=z(this),e=t.prev(),i=z("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=z(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!z.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(z.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(z.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=z.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=z.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),this._change(t))}}),this._initSource(),this.menu=z("
      ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==z.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(t,e){var i;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){z(t.target).trigger(t.originalEvent)});i=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:i})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(i.value),(i=e.item.attr("aria-label")||i.value)&&z.trim(i).length&&(this.liveRegion.children().hide(),z("
      ").text(i).appendTo(this.liveRegion))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==z.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=z("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||z.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return(t=t&&(t.jquery||t.nodeType?z(t):this.document.find(t).eq(0)))&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_initSource:function(){var i,s,n=this;z.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(z.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=z.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(!t||e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(z("
      ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),z.extend(z.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(z.ui.autocomplete.escapeRegex(e),"i");return z.grep(t,function(t){return i.test(t.label||t.value||t)})}}),z.widget("ui.autocomplete",z.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e).appendTo(this.liveRegion))}});z.ui.autocomplete}); \ No newline at end of file +!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(z){z.ui=z.ui||{};z.ui.version="1.13.0";var n,i=0,a=Array.prototype.slice;z.cleanData=(n=z.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)try{(e=z._data(i,"events"))&&e.remove&&z(i).triggerHandler("remove")}catch(t){}n(t)}),z.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],l=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=z.Widget),z.isArray(e)&&(e=z.extend.apply(null,[{}].concat(e))),z.expr[":"][l.toLowerCase()]=function(t){return!!z.data(t,l)},z[a]=z[a]||{},s=z[a][t],n=z[a][t]=function(t,e){if(!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},z.extend(n,s,{version:e.version,_proto:z.extend({},e),_childConstructors:[]}),(o=new i).options=z.widget.extend({},o.options),z.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}z.isFunction(s)?h[e]=function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:h[e]=s}),n.prototype=z.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:l}),s?(z.each(s._childConstructors,function(t,e){var i=e.prototype;z.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),z.widget.bridge(t,n),n},z.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=z(e||this.defaultElement||this)[0],this.element=z(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=z(),this.hoverable=z(),this.focusable=z(),this.classesElementLookup={},e!==this&&(z.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=z(e.style?e.ownerDocument:e.document||e),this.window=z(this.document[0].defaultView||this.document[0].parentWindow)),this.options=z.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:z.noop,_create:z.noop,_init:z.noop,destroy:function(){var i=this;this._destroy(),z.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:z.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return z.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=z.widget.extend({},this.options[t]),n=0;n
      "),i=e.children()[0];return z("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),h.offset(z.extend(r,{using:t}))})},z.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),z.ui.plugin={add:function(t,e,i){var s,n=z.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
      ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&z(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();function t(t){z(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){this._super(t,e),"handles"===t&&(this._removeHandles(),this._setupHandles())},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(z(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=z(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.append(n);this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=z(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=z(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=z(this.handles[e])[0])!==t.target&&!z.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=z(s.containment).scrollLeft()||0,i+=z(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=z(".ui-resizable-"+this.axis).css("cursor"),z("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),z.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(z.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),z("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,r=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&r&&(t.left=a-e.minWidth),s&&r&&(t.left=a-e.maxWidth),h&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
      "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return z.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return z.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return z.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return z.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){z.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),z.ui.plugin.add("resizable","animate",{stop:function(e){var i=z(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(z.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&z(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),z.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=z(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof z?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=z(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:z(document),left:0,top:0,width:z(document).width(),height:z(document).height()||document.body.parentNode.scrollHeight}):(i=z(h),s=[],z(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=z(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=z(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=z(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&z(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&z(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),z.ui.plugin.add("resizable","alsoResize",{start:function(){var t=z(this).resizable("instance").options;z(t.alsoResize).each(function(){var t=z(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=z(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};z(s.alsoResize).each(function(){var t=z(this),s=z(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];z.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){z(this).removeData("ui-resizable-alsoresize")}}),z.ui.plugin.add("resizable","ghost",{start:function(){var t=z(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==z.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=z(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=z(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),z.ui.plugin.add("resizable","grid",{resize:function(){var t,e=z(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,l=a[0]||1,r=a[1]||1,u=Math.round((s.width-n.width)/l)*l,c=Math.round((s.height-n.height)/r)*r,d=n.width+u,p=n.height+c,m=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>p;i.grid=a,g&&(d+=l),s&&(p+=r),m&&(d-=l),f&&(p-=r),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=p,e.position.top=o.top-c):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=p,e.position.left=o.left-u):((p-r<=0||d-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(t){var e=z(t.target),i=z(z.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var e,i;this.previousFilter||(e=z(t.target).closest(".ui-menu-item"),i=z(t.currentTarget),e[0]===i[0]&&(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i)))},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(t){this._delay(function(){z.contains(this.element[0],z.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=z(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case z.ui.keyCode.PAGE_UP:this.previousPage(t);break;case z.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case z.ui.keyCode.HOME:this._move("first","first",t);break;case z.ui.keyCode.END:this._move("last","last",t);break;case z.ui.keyCode.UP:this.previous(t);break;case z.ui.keyCode.DOWN:this.next(t);break;case z.ui.keyCode.LEFT:this.collapse(t);break;case z.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case z.ui.keyCode.ENTER:case z.ui.keyCode.SPACE:this._activate(t);break;case z.ui.keyCode.ESCAPE:this.collapse(t);break;default:n=!1,e=this.previousFilter||"",s=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=z(this),e=t.prev(),i=z("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=z(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!z.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(z.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(z.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=z.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=z.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),this._change(t))}}),this._initSource(),this.menu=z("
        ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==z.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(t,e){var i;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){z(t.target).trigger(t.originalEvent)});i=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:i})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(i.value),(i=e.item.attr("aria-label")||i.value)&&z.trim(i).length&&(this.liveRegion.children().hide(),z("
        ").text(i).appendTo(this.liveRegion))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==z.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=z("
        ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||z.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return(t=t&&(t.jquery||t.nodeType?z(t):this.document.find(t).eq(0)))&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_initSource:function(){var i,s,n=this;z.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(z.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=z.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(!t||e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(z("
        ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),z.extend(z.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(z.ui.autocomplete.escapeRegex(e),"i");return z.grep(t,function(t){return i.test(t.label||t.value||t)})}}),z.widget("ui.autocomplete",z.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e).appendTo(this.liveRegion))}});z.ui.autocomplete}); \ No newline at end of file diff --git a/InvenTree/InvenTree/static/script/jquery-ui/package.json b/InvenTree/InvenTree/static/script/jquery-ui/package.json index e3c846e3a8..dc32b2db84 100644 --- a/InvenTree/InvenTree/static/script/jquery-ui/package.json +++ b/InvenTree/InvenTree/static/script/jquery-ui/package.json @@ -2,7 +2,7 @@ "name": "jquery-ui", "title": "jQuery UI", "description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.", - "version": "1.12.1", + "version": "1.13.0", "homepage": "http://jqueryui.com", "author": { "name": "jQuery Foundation and other contributors", diff --git a/InvenTree/InvenTree/status_codes.py b/InvenTree/InvenTree/status_codes.py index ffe22039c9..93f213445c 100644 --- a/InvenTree/InvenTree/status_codes.py +++ b/InvenTree/InvenTree/status_codes.py @@ -255,6 +255,9 @@ class StockHistoryCode(StatusCode): # Stock merging operations MERGED_STOCK_ITEMS = 45 + # Convert stock item to variant + CONVERTED_TO_VARIANT = 48 + # Build order codes BUILD_OUTPUT_CREATED = 50 BUILD_OUTPUT_COMPLETED = 55 @@ -294,6 +297,8 @@ class StockHistoryCode(StatusCode): MERGED_STOCK_ITEMS: _('Merged stock items'), + CONVERTED_TO_VARIANT: _('Converted to variant'), + SENT_TO_CUSTOMER: _('Sent to customer'), RETURNED_FROM_CUSTOMER: _('Returned from customer'), diff --git a/InvenTree/InvenTree/test_views.py b/InvenTree/InvenTree/test_views.py index 490e91b03e..9de0a58810 100644 --- a/InvenTree/InvenTree/test_views.py +++ b/InvenTree/InvenTree/test_views.py @@ -72,7 +72,7 @@ class ViewTests(TestCase): """ # Change this number as more javascript files are added to the index page - N_SCRIPT_FILES = 38 + N_SCRIPT_FILES = 39 content = self.get_index_page() diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py index 0a9d39225b..4663b6a111 100644 --- a/InvenTree/InvenTree/version.py +++ b/InvenTree/InvenTree/version.py @@ -1,4 +1,5 @@ -""" Version information for InvenTree. +""" +Version information for InvenTree. Provides information on the current InvenTree version """ @@ -8,141 +9,11 @@ import re import common.models +from InvenTree.api_version import INVENTREE_API_VERSION + # InvenTree software version INVENTREE_SW_VERSION = "0.7.0 dev" -# InvenTree API version -INVENTREE_API_VERSION = 36 - -""" -Increment this API version number whenever there is a significant change to the API that any clients need to know about - -v36 -> 2022-04-03 - - Adds ability to filter part list endpoint by unallocated_stock argument - -v35 -> 2022-04-01 : https://github.com/inventree/InvenTree/pull/2797 - - Adds stock allocation information to the Part API - - Adds calculated field for "unallocated_quantity" - -v34 -> 2022-03-25 - - Change permissions for "plugin list" API endpoint (now allows any authenticated user) - -v33 -> 2022-03-24 - - Adds "plugins_enabled" information to root API endpoint - -v32 -> 2022-03-19 - - Adds "parameters" detail to Part API endpoint (use ¶meters=true) - - Adds ability to filter PartParameterTemplate API by Part instance - - Adds ability to filter PartParameterTemplate API by PartCategory instance - -v31 -> 2022-03-14 - - Adds "updated" field to SupplierPriceBreakList and SupplierPriceBreakDetail API endpoints - -v30 -> 2022-03-09 - - Adds "exclude_location" field to BuildAutoAllocation API endpoint - - Allows BuildItem API endpoint to be filtered by BomItem relation - -v29 -> 2022-03-08 - - Adds "scheduling" endpoint for predicted stock scheduling information - -v28 -> 2022-03-04 - - Adds an API endpoint for auto allocation of stock items against a build order - - Ref: https://github.com/inventree/InvenTree/pull/2713 - -v27 -> 2022-02-28 - - Adds target_date field to individual line items for purchase orders and sales orders - -v26 -> 2022-02-17 - - Adds API endpoint for uploading a BOM file and extracting data - -v25 -> 2022-02-17 - - Adds ability to filter "part" list endpoint by "in_bom_for" argument - -v24 -> 2022-02-10 - - Adds API endpoint for deleting (cancelling) build order outputs - -v23 -> 2022-02-02 - - Adds API endpoints for managing plugin classes - - Adds API endpoints for managing plugin settings - -v22 -> 2021-12-20 - - Adds API endpoint to "merge" multiple stock items - -v21 -> 2021-12-04 - - Adds support for multiple "Shipments" against a SalesOrder - - Refactors process for stock allocation against a SalesOrder - -v20 -> 2021-12-03 - - Adds ability to filter POLineItem endpoint by "base_part" - - Adds optional "order_detail" to POLineItem list endpoint - -v19 -> 2021-12-02 - - Adds the ability to filter the StockItem API by "part_tree" - - Returns only stock items which match a particular part.tree_id field - -v18 -> 2021-11-15 - - Adds the ability to filter BomItem API by "uses" field - - This returns a list of all BomItems which "use" the specified part - - Includes inherited BomItem objects - -v17 -> 2021-11-09 - - Adds API endpoints for GLOBAL and USER settings objects - - Ref: https://github.com/inventree/InvenTree/pull/2275 - -v16 -> 2021-10-17 - - Adds API endpoint for completing build order outputs - -v15 -> 2021-10-06 - - Adds detail endpoint for SalesOrderAllocation model - - Allows use of the API forms interface for adjusting SalesOrderAllocation objects - -v14 -> 2021-10-05 - - Stock adjustment actions API is improved, using native DRF serializer support - - However adjustment actions now only support 'pk' as a lookup field - -v13 -> 2021-10-05 - - Adds API endpoint to allocate stock items against a BuildOrder - - Updates StockItem API with improved filtering against BomItem data - -v12 -> 2021-09-07 - - Adds API endpoint to receive stock items against a PurchaseOrder - -v11 -> 2021-08-26 - - Adds "units" field to PartBriefSerializer - - This allows units to be introspected from the "part_detail" field in the StockItem serializer - -v10 -> 2021-08-23 - - Adds "purchase_price_currency" to StockItem serializer - - Adds "purchase_price_string" to StockItem serializer - - Purchase price is now writable for StockItem serializer - -v9 -> 2021-08-09 - - Adds "price_string" to part pricing serializers - -v8 -> 2021-07-19 - - Refactors the API interface for SupplierPart and ManufacturerPart models - - ManufacturerPart objects can no longer be created via the SupplierPart API endpoint - -v7 -> 2021-07-03 - - Introduced the concept of "API forms" in https://github.com/inventree/InvenTree/pull/1716 - - API OPTIONS endpoints provide comprehensive field metedata - - Multiple new API endpoints added for database models - -v6 -> 2021-06-23 - - Part and Company images can now be directly uploaded via the REST API - -v5 -> 2021-06-21 - - Adds API interface for manufacturer part parameters - -v4 -> 2021-06-01 - - BOM items can now accept "variant stock" to be assigned against them - - Many slight API tweaks were needed to get this to work properly! - -v3 -> 2021-05-22: - - The updated StockItem "history tracking" now uses a different interface - -""" - def inventreeInstanceName(): """ Returns the InstanceName settings for the current database """ diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index 9ba348b0b4..e5189e6073 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -871,6 +871,9 @@ class Build(MPTTModel, ReferenceIndexingMixin): part__in=[p for p in available_parts], ) + # Filter out "serialized" stock items, these cannot be auto-allocated + available_stock = available_stock.filter(Q(serial=None) | Q(serial='')) + if location: # Filter only stock items located "below" the specified location sublocations = location.get_descendants(include_self=True) diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html index 0ed3c01f7e..92e1177e0f 100644 --- a/InvenTree/build/templates/build/detail.html +++ b/InvenTree/build/templates/build/detail.html @@ -3,7 +3,6 @@ {% load i18n %} {% load inventree_extras %} {% load status_codes %} -{% load markdownify %} {% block sidebar %} {% include "build/sidebar.html" %} @@ -309,24 +308,16 @@
        -
        -
        -

        {% trans "Build Notes" %}

        -
        -
        -
        - -
        +
        +

        {% trans "Build Notes" %}

        + {% include "spacer.html" %} +
        + {% include "notes_buttons.html" %}
        - {% if build.notes %} - {{ build.notes | markdownify }} - {% endif %} +
        @@ -392,17 +383,18 @@ onPanelLoad('attachments', function() { }); onPanelLoad('notes', function() { - $('#edit-notes').click(function() { - constructForm('{% url "api-build-detail" build.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); - }); + + setupNotesField( + 'build-notes', + '{% url "api-build-detail" build.pk %}', + { + {% if roles.build.change %} + editable: true, + {% else %} + editable: false, + {% endif %} + } + ); }); function reloadTable() { diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index bb7de56e99..8bd100dcc9 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -932,6 +932,12 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'validator': bool, }, + 'STOCK_BATCH_CODE_TEMPLATE': { + 'name': _('Batch Code Template'), + 'description': _('Template for generating default batch codes for stock items'), + 'default': '', + }, + 'STOCK_ENABLE_EXPIRY': { 'name': _('Stock Expiry'), 'description': _('Enable stock expiry functionality'), diff --git a/InvenTree/company/templates/company/detail.html b/InvenTree/company/templates/company/detail.html index 0717d02d4d..3d715e288c 100644 --- a/InvenTree/company/templates/company/detail.html +++ b/InvenTree/company/templates/company/detail.html @@ -1,7 +1,6 @@ {% extends "company/company_base.html" %} {% load static %} {% load i18n %} -{% load markdownify %} {% block sidebar %} {% include 'company/sidebar.html' %} @@ -181,24 +180,16 @@
        -
        -
        -

        {% trans "Company Notes" %}

        -
        -
        -
        - -
        +
        +

        {% trans "Company Notes" %}

        + {% include "spacer.html" %} +
        + {% include "notes_buttons.html" %}
        - {% if company.notes %} - {{ company.notes | markdownify }} - {% endif %} +
        @@ -207,16 +198,15 @@ {% block js_ready %} {{ block.super }} - $('#edit-notes').click(function() { - constructForm('{% url "api-company-detail" company.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); + onPanelLoad('company-notes', function() { + + setupNotesField( + 'company-notes', + '{% url "api-company-detail" company.pk %}', + { + editable: true, + } + ) }); loadStockTable($("#assigned-stock-table"), { @@ -230,18 +220,37 @@ filterTarget: '#filter-list-customerstock', }); - {% if company.is_customer %} - loadSalesOrderTable("#sales-order-table", { - url: "{% url 'api-so-list' %}", - params: { - customer: {{ company.id }}, - } + onPanelLoad('company-stock', function() { + + loadStockTable($('#stock-table'), { + url: "{% url 'api-stock-list' %}", + params: { + company: {{ company.id }}, + part_detail: true, + supplier_part_detail: true, + location_detail: true, + }, + buttons: [ + '#stock-options', + ], + filterKey: "companystock", + }); }); - $("#new-sales-order").click(function() { + {% if company.is_customer %} + onPanelLoad('sales-orders', function() { + loadSalesOrderTable("#sales-order-table", { + url: "{% url 'api-so-list' %}", + params: { + customer: {{ company.id }}, + } + }); - createSalesOrder({ - customer: {{ company.pk }}, + $("#new-sales-order").click(function() { + + createSalesOrder({ + customer: {{ company.pk }}, + }); }); }); {% endif %} @@ -270,20 +279,6 @@ {% endif %} - loadStockTable($('#stock-table'), { - url: "{% url 'api-stock-list' %}", - params: { - company: {{ company.id }}, - part_detail: true, - supplier_part_detail: true, - location_detail: true, - }, - buttons: [ - '#stock-options', - ], - filterKey: "companystock", - }); - {% if company.is_manufacturer %} function reloadManufacturerPartTable() { diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.mo b/InvenTree/locale/cs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..067827f3ed Binary files /dev/null and b/InvenTree/locale/cs/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po new file mode 100644 index 0000000000..d159e9859c --- /dev/null +++ b/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -0,0 +1,10114 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#: templates/js/translated/order.js:2170 +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-20 14:16+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#: InvenTree/api.py:57 +msgid "API endpoint not found" +msgstr "" + +#: InvenTree/api.py:103 +msgid "No action specified" +msgstr "" + +#: InvenTree/api.py:118 +msgid "No matching action found" +msgstr "" + +#: InvenTree/fields.py:100 +msgid "Enter date" +msgstr "" + +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:601 +msgid "Confirm" +msgstr "" + +#: InvenTree/forms.py:142 +msgid "Confirm delete" +msgstr "" + +#: InvenTree/forms.py:143 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:174 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:175 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:182 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:183 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:215 +msgid "Select Category" +msgstr "" + +#: InvenTree/forms.py:236 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:240 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:260 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/helpers.py:442 +#, python-brace-format +msgid "Duplicate serial: {sn}" +msgstr "" + +#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 +#: stock/views.py:993 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/helpers.py:452 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:474 InvenTree/helpers.py:477 InvenTree/helpers.py:480 +#: InvenTree/helpers.py:504 +#, python-brace-format +msgid "Invalid group: {g}" +msgstr "" + +#: InvenTree/helpers.py:518 +#, python-brace-format +msgid "Invalid/no group {group}" +msgstr "" + +#: InvenTree/helpers.py:524 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:528 +#, python-brace-format +msgid "Number of unique serial number ({s}) must match quantity ({q})" +msgstr "" + +#: InvenTree/models.py:185 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:186 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:197 stock/models.py:2171 +#: templates/js/translated/attachment.js:119 +msgid "Attachment" +msgstr "" + +#: InvenTree/models.py:198 +msgid "Select file to attach" +msgstr "" + +#: InvenTree/models.py:204 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:868 +#: report/templates/report/inventree_build_order_base.html:165 +#: templates/js/translated/company.js:540 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1423 +msgid "Link" +msgstr "" + +#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 +#: stock/models.py:639 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:208 templates/js/translated/attachment.js:163 +msgid "Comment" +msgstr "" + +#: InvenTree/models.py:208 +msgid "File comment" +msgstr "" + +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 +#: common/models.py:1397 common/models.py:1618 common/models.py:1619 +#: common/models.py:1848 common/models.py:1849 part/models.py:2369 +#: part/models.py:2389 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2517 +msgid "User" +msgstr "" + +#: InvenTree/models.py:218 +msgid "upload date" +msgstr "" + +#: InvenTree/models.py:241 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:264 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:274 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:277 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:284 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:291 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:326 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 +#: company/models.py:415 label/models.py:112 part/models.py:812 +#: part/models.py:2553 plugin/models.py:40 report/models.py:177 +#: templates/InvenTree/notifications/notifications.html:84 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin_settings.html:23 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:749 templates/js/translated/part.js:1730 +#: templates/js/translated/stock.js:2287 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:349 build/models.py:209 +#: build/templates/build/detail.html:24 company/models.py:354 +#: company/models.py:570 company/templates/company/company_base.html:68 +#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/supplier_part.html:73 label/models.py:119 +#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 +#: part/templates/part/set_category.html:14 report/models.py:190 +#: report/models.py:553 report/models.py:592 +#: report/templates/report/inventree_build_order_base.html:118 +#: stock/templates/stock/location.html:94 +#: templates/InvenTree/settings/plugin_settings.html:33 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 +#: templates/js/translated/company.js:551 +#: templates/js/translated/company.js:840 templates/js/translated/order.js:971 +#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1064 +#: templates/js/translated/part.js:1337 templates/js/translated/part.js:1749 +#: templates/js/translated/part.js:1818 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:350 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:358 +msgid "parent" +msgstr "" + +#: InvenTree/serializers.py:65 part/models.py:2872 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:299 +msgid "Filename" +msgstr "" + +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "" + +#: InvenTree/serializers.py:632 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "" + +#: InvenTree/settings.py:666 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:667 +msgid "German" +msgstr "" + +#: InvenTree/settings.py:668 +msgid "Greek" +msgstr "" + +#: InvenTree/settings.py:669 +msgid "English" +msgstr "" + +#: InvenTree/settings.py:670 +msgid "Spanish" +msgstr "" + +#: InvenTree/settings.py:671 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:672 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:673 +msgid "French" +msgstr "" + +#: InvenTree/settings.py:674 +msgid "Hebrew" +msgstr "" + +#: InvenTree/settings.py:675 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:676 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:677 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:678 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:679 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:680 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:681 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:682 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:683 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:684 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:685 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Chinese" +msgstr "" + +#: InvenTree/status.py:110 +msgid "Background worker check failed" +msgstr "" + +#: InvenTree/status.py:114 +msgid "Email backend not configured" +msgstr "" + +#: InvenTree/status.py:117 +msgid "InvenTree system health checks failed" +msgstr "" + +#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 +msgid "Pending" +msgstr "" + +#: InvenTree/status_codes.py:102 +msgid "Placed" +msgstr "" + +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 +#: order/templates/order/order_base.html:128 +#: order/templates/order/sales_order_base.html:132 +msgid "Complete" +msgstr "" + +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:325 +msgid "Cancelled" +msgstr "" + +#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:187 +msgid "Lost" +msgstr "" + +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 +#: InvenTree/status_codes.py:189 +msgid "Returned" +msgstr "" + +#: InvenTree/status_codes.py:143 order/models.py:997 +#: templates/js/translated/order.js:2177 templates/js/translated/order.js:2474 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:183 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:184 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:185 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:186 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:188 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:278 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:284 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:287 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:290 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:293 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:296 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:303 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:305 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:306 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Production" +msgstr "" + +#: InvenTree/validators.py:25 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:53 +msgid "Invalid character in part name" +msgstr "" + +#: InvenTree/validators.py:66 +#, python-brace-format +msgid "IPN must match regex pattern {pat}" +msgstr "" + +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "" + +#: InvenTree/validators.py:116 +#, python-brace-format +msgid "Illegal character in name ({x})" +msgstr "" + +#: InvenTree/validators.py:137 InvenTree/validators.py:153 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:155 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:538 +msgid "Delete Item" +msgstr "" + +#: InvenTree/views.py:587 +msgid "Check box to confirm item deletion" +msgstr "" + +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:632 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:883 templates/navbar.html:144 +msgid "System Information" +msgstr "" + +#: barcodes/api.py:55 barcodes/api.py:156 +msgid "Must provide barcode_data parameter" +msgstr "" + +#: barcodes/api.py:132 +msgid "No match found for barcode data" +msgstr "" + +#: barcodes/api.py:134 +msgid "Match found for barcode data" +msgstr "" + +#: barcodes/api.py:159 +msgid "Must provide stockitem parameter" +msgstr "" + +#: barcodes/api.py:166 +msgid "No matching stock item found" +msgstr "" + +#: barcodes/api.py:197 +msgid "Barcode already matches Stock Item" +msgstr "" + +#: barcodes/api.py:201 +msgid "Barcode already matches Stock Location" +msgstr "" + +#: barcodes/api.py:205 +msgid "Barcode already matches Part" +msgstr "" + +#: barcodes/api.py:211 barcodes/api.py:223 +msgid "Barcode hash already matches Stock Item" +msgstr "" + +#: barcodes/api.py:229 +msgid "Barcode associated with Stock Item" +msgstr "" + +#: build/forms.py:20 +msgid "Confirm cancel" +msgstr "" + +#: build/forms.py:20 build/views.py:62 +msgid "Confirm build cancellation" +msgstr "" + +#: build/models.py:135 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:139 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/translated/build.js:677 +msgid "Build Order" +msgstr "" + +#: build/models.py:140 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:91 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: templates/InvenTree/search.html:139 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 +msgid "Build Orders" +msgstr "" + +#: build/models.py:200 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:201 order/models.py:213 order/models.py:563 +#: order/models.py:843 part/models.py:2783 +#: part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:92 +#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1415 +#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 +msgid "Reference" +msgstr "" + +#: build/models.py:212 +msgid "Brief description of the build" +msgstr "" + +#: build/models.py:221 build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:87 +msgid "Parent Build" +msgstr "" + +#: build/models.py:222 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:227 build/templates/build/build_base.html:77 +#: build/templates/build/detail.html:29 company/models.py:706 +#: order/models.py:912 order/models.py:986 +#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 +#: part/models.py:2315 part/models.py:2331 part/models.py:2350 +#: part/models.py:2367 part/models.py:2469 part/models.py:2591 +#: part/models.py:2681 part/models.py:2758 part/models.py:3048 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:89 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:80 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:16 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 +#: templates/js/translated/company.js:749 templates/js/translated/order.js:84 +#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 +#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1049 +#: templates/js/translated/part.js:1119 templates/js/translated/part.js:1315 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 +msgid "Part" +msgstr "" + +#: build/models.py:235 +msgid "Select part to build" +msgstr "" + +#: build/models.py:240 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:244 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:249 build/serializers.py:730 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 +msgid "Source Location" +msgstr "" + +#: build/models.py:253 +msgid "Select location to take stock from for this build (leave blank to take from any stock location)" +msgstr "" + +#: build/models.py:258 +msgid "Destination Location" +msgstr "" + +#: build/models.py:262 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:266 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:269 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:273 +msgid "Completed items" +msgstr "" + +#: build/models.py:275 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:279 +msgid "Build Status" +msgstr "" + +#: build/models.py:283 +msgid "Build status code" +msgstr "" + +#: build/models.py:287 build/serializers.py:218 order/serializers.py:272 +#: stock/models.py:643 templates/js/translated/order.js:573 +msgid "Batch Code" +msgstr "" + +#: build/models.py:291 build/serializers.py:219 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:294 order/models.py:129 part/models.py:1007 +#: part/templates/part/part_base.html:331 templates/js/translated/order.js:1467 +msgid "Creation Date" +msgstr "" + +#: build/models.py:298 order/models.py:585 +msgid "Target completion date" +msgstr "" + +#: build/models.py:299 +msgid "Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:302 order/models.py:255 +#: templates/js/translated/build.js:2089 +msgid "Completion Date" +msgstr "" + +#: build/models.py:308 +msgid "completed by" +msgstr "" + +#: build/models.py:316 templates/js/translated/build.js:2057 +msgid "Issued by" +msgstr "" + +#: build/models.py:317 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:325 build/templates/build/build_base.html:190 +#: build/templates/build/detail.html:115 order/models.py:143 +#: order/templates/order/order_base.html:170 +#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: report/templates/report/inventree_build_order_base.html:159 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 +msgid "Responsible" +msgstr "" + +#: build/models.py:326 +msgid "User responsible for this build order" +msgstr "" + +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:102 +#: company/templates/company/supplier_part.html:126 +#: part/templates/part/part_base.html:372 stock/models.py:637 +#: stock/templates/stock/item_base.html:357 +msgid "External Link" +msgstr "" + +#: build/models.py:336 build/serializers.py:381 +#: build/templates/build/sidebar.html:21 company/models.py:142 +#: company/models.py:577 company/templates/company/sidebar.html:25 +#: order/models.py:147 order/models.py:845 order/models.py:1107 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/so_sidebar.html:17 part/models.py:996 +#: part/templates/part/part_sidebar.html:60 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:709 +#: stock/models.py:2071 stock/models.py:2177 stock/serializers.py:332 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 +#: stock/templates/stock/stock_sidebar.html:25 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 +#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 +#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 +msgid "Notes" +msgstr "" + +#: build/models.py:337 +msgid "Extra build notes" +msgstr "" + +#: build/models.py:750 +msgid "No build output specified" +msgstr "" + +#: build/models.py:753 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:756 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1168 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1177 +#, python-brace-format +msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1187 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1193 order/models.py:1225 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1199 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1256 +msgid "Selected stock item not found in BOM" +msgstr "" + +#: build/models.py:1325 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 +#: templates/navbar.html:35 +msgid "Build" +msgstr "" + +#: build/models.py:1326 +msgid "Build to allocate parts" +msgstr "" + +#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 +#: stock/templates/stock/item_base.html:23 +#: stock/templates/stock/item_base.html:351 +#: templates/js/translated/build.js:688 templates/js/translated/build.js:693 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 +#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 +#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 +#: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1343 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1355 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:34 common/models.py:1429 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:836 order/models.py:1265 order/serializers.py:903 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2774 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 +#: templates/js/translated/build.js:376 templates/js/translated/build.js:524 +#: templates/js/translated/build.js:715 templates/js/translated/build.js:912 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:108 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 +#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 +#: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:949 +#: templates/js/translated/part.js:1961 templates/js/translated/part.js:2183 +#: templates/js/translated/part.js:2217 templates/js/translated/part.js:2295 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 +msgid "Quantity" +msgstr "" + +#: build/models.py:1356 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1364 +msgid "Install into" +msgstr "" + +#: build/models.py:1365 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:138 build/serializers.py:605 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:150 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:154 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:158 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:164 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:201 build/serializers.py:596 order/models.py:280 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 +#: stock/models.py:477 stock/models.py:1280 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 +#: stock/forms.py:78 stock/serializers.py:314 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:240 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:241 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:275 stock/api.py:591 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:328 build/serializers.py:393 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 +#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 +#: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 +msgid "Location" +msgstr "" + +#: build/serializers.py:371 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:377 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 +#: templates/js/translated/order.js:716 templates/js/translated/order.js:975 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 +msgid "Status" +msgstr "" + +#: build/serializers.py:434 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:435 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:445 templates/js/translated/build.js:151 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:450 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:451 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:461 templates/js/translated/build.js:155 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:470 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:473 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2898 +#: part/models.py:3040 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:511 +msgid "Build output" +msgstr "" + +#: build/serializers.py:520 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:567 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:582 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:638 order/serializers.py:834 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:644 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:651 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:679 order/serializers.py:1077 +msgid "Allocation items must be provided" +msgstr "" + +#: build/serializers.py:731 +msgid "Stock location where parts are to be sourced (leave blank to take from any location)" +msgstr "" + +#: build/serializers.py:739 +msgid "Exclude Location" +msgstr "" + +#: build/serializers.py:740 +msgid "Exclude stock items from this selected location" +msgstr "" + +#: build/serializers.py:745 +msgid "Interchangeable Stock" +msgstr "" + +#: build/serializers.py:746 +msgid "Stock items in multiple locations can be used interchangeably" +msgstr "" + +#: build/serializers.py:751 +msgid "Substitute Stock" +msgstr "" + +#: build/serializers.py:752 +msgid "Allow allocation of substitute parts" +msgstr "" + +#: build/tasks.py:98 +msgid "Stock required for build order" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: order/templates/order/order_base.html:28 +#: order/templates/order/sales_order_base.html:38 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:50 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:54 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:220 build/views.py:53 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:59 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:64 +#: build/templates/build/build_base.html:65 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:87 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:101 +#, python-format +msgid "This Build Order is allocated to Sales Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:108 +#, python-format +msgid "This Build Order is a child of Build Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:115 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:120 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:125 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:130 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:131 order/models.py:849 +#: order/templates/order/order_base.html:156 +#: order/templates/order/sales_order_base.html:163 +#: report/templates/report/inventree_build_order_base.html:126 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 +#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:953 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:156 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 +#: order/templates/order/order_base.html:98 +#: order/templates/order/sales_order_base.html:93 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:163 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 +#: order/templates/order/sales_order_base.html:170 +#: templates/js/translated/build.js:2027 +#: templates/js/translated/table_filters.js:392 +msgid "Completed" +msgstr "" + +#: build/templates/build/build_base.html:176 +#: build/templates/build/detail.html:94 order/models.py:983 +#: order/models.py:1079 order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:291 +#: templates/js/translated/order.js:1414 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:183 +#: build/templates/build/detail.html:108 +#: report/templates/report/inventree_build_order_base.html:153 +msgid "Issued By" +msgstr "" + +#: build/templates/build/build_base.html:228 +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/build_base.html:229 +msgid "Build Order cannot be completed as incomplete build outputs remain" +msgstr "" + +#: build/templates/build/cancel.html:5 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:38 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:43 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 +#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:56 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 +#: templates/js/translated/table_filters.js:151 +#: templates/js/translated/table_filters.js:242 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:126 +#: order/templates/order/order_base.html:143 +#: order/templates/order/sales_order_base.html:157 +#: templates/js/translated/build.js:2049 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:137 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:146 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:172 +msgid "Allocate Stock to Build" +msgstr "" + +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 +msgid "Unallocate stock" +msgstr "" + +#: build/templates/build/detail.html:177 +msgid "Unallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:179 +msgid "Automatically allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:180 +msgid "Auto Allocate" +msgstr "" + +#: build/templates/build/detail.html:182 +msgid "Manually allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:186 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 +#: part/templates/part/category.html:174 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:199 +msgid "Untracked stock has been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:203 +msgid "Untracked stock has not been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:210 +msgid "Allocate selected items" +msgstr "" + +#: build/templates/build/detail.html:220 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "" + +#: build/templates/build/detail.html:229 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:233 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:234 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:248 +msgid "Output Actions" +msgstr "" + +#: build/templates/build/detail.html:252 +msgid "Complete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:253 +msgid "Complete outputs" +msgstr "" + +#: build/templates/build/detail.html:255 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:256 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:312 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:548 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:549 +msgid "All untracked stock items have been allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/index.html:37 build/templates/build/index.html:38 +msgid "Print Build Orders" +msgstr "" + +#: build/templates/build/index.html:44 +#: order/templates/order/purchase_orders.html:34 +#: order/templates/order/sales_orders.html:37 +msgid "Display calendar view" +msgstr "" + +#: build/templates/build/index.html:47 +#: order/templates/order/purchase_orders.html:37 +#: order/templates/order/sales_orders.html:40 +msgid "Display list view" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:15 +msgid "Completed Outputs" +msgstr "" + +#: build/views.py:73 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:114 +msgid "Delete Build Order" +msgstr "" + +#: common/files.py:65 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:67 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:76 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:34 +msgid "File" +msgstr "" + +#: common/forms.py:35 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:50 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:51 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:381 +msgid "Settings key (must be unique - case insensitive)" +msgstr "" + +#: common/models.py:383 +msgid "Settings value" +msgstr "" + +#: common/models.py:417 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:437 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:448 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:490 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:637 +msgid "No group" +msgstr "" + +#: common/models.py:679 +msgid "Restart required" +msgstr "" + +#: common/models.py:680 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:687 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:689 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:693 +msgid "Use instance name" +msgstr "" + +#: common/models.py:694 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:700 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "" + +#: common/models.py:701 +msgid "Internal company name" +msgstr "" + +#: common/models.py:706 +msgid "Base URL" +msgstr "" + +#: common/models.py:707 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:713 +msgid "Default Currency" +msgstr "" + +#: common/models.py:714 +msgid "Default currency" +msgstr "" + +#: common/models.py:720 +msgid "Download from URL" +msgstr "" + +#: common/models.py:721 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:727 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:728 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:734 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:735 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:739 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:740 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:753 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:754 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:760 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:761 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:767 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:768 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:774 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:775 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:781 part/models.py:2593 report/models.py:183 +#: templates/js/translated/table_filters.js:38 +#: templates/js/translated/table_filters.js:444 +msgid "Template" +msgstr "" + +#: common/models.py:782 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 +#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:460 +msgid "Assembly" +msgstr "" + +#: common/models.py:789 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:795 part/models.py:965 +#: templates/js/translated/table_filters.js:464 +msgid "Component" +msgstr "" + +#: common/models.py:796 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:802 part/models.py:976 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:803 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:809 part/models.py:981 +#: templates/js/translated/table_filters.js:472 +msgid "Salable" +msgstr "" + +#: common/models.py:810 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:816 part/models.py:971 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:100 +#: templates/js/translated/table_filters.js:476 +msgid "Trackable" +msgstr "" + +#: common/models.py:817 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:823 part/models.py:991 +#: part/templates/part/part_base.html:151 +#: templates/js/translated/table_filters.js:42 +msgid "Virtual" +msgstr "" + +#: common/models.py:824 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:830 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:831 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:837 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:838 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:849 +msgid "Show Price in BOM" +msgstr "" + +#: common/models.py:850 +msgid "Include pricing information in BOM tables" +msgstr "" + +#: common/models.py:861 +msgid "Show Price History" +msgstr "" + +#: common/models.py:862 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:868 +msgid "Show related parts" +msgstr "" + +#: common/models.py:869 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:875 +msgid "Create initial stock" +msgstr "" + +#: common/models.py:876 +msgid "Create initial stock on part creation" +msgstr "" + +#: common/models.py:882 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:883 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:889 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:890 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:896 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:897 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:904 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:905 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:911 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:912 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:918 +msgid "Page Size" +msgstr "" + +#: common/models.py:919 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:929 +msgid "Test Reports" +msgstr "" + +#: common/models.py:930 +msgid "Enable generation of test reports" +msgstr "" + +#: common/models.py:936 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:937 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:943 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:944 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:950 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:951 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:953 +msgid "days" +msgstr "" + +#: common/models.py:958 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:959 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:965 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:966 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:972 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:973 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:978 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:979 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:983 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:984 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:989 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:990 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:996 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:997 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:1002 +msgid "Enable registration" +msgstr "" + +#: common/models.py:1003 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:1008 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:1009 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1014 +msgid "Email required" +msgstr "" + +#: common/models.py:1015 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1020 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1021 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1026 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1027 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1032 +msgid "Password twice" +msgstr "" + +#: common/models.py:1033 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1038 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1039 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1044 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1045 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1051 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1052 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1059 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1060 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1066 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1067 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1073 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1074 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1080 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:1081 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:1087 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:1088 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:1103 common/models.py:1389 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:1134 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:1135 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:1140 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:1141 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:1146 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:1147 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:1152 +msgid "Recent Part Count" +msgstr "" + +#: common/models.py:1153 +msgid "Number of recent parts to display on index page" +msgstr "" + +#: common/models.py:1159 +msgid "Show unvalidated BOMs" +msgstr "" + +#: common/models.py:1160 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:1165 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:1166 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:1171 +msgid "Recent Stock Count" +msgstr "" + +#: common/models.py:1172 +msgid "Number of recent stock items to display on index page" +msgstr "" + +#: common/models.py:1177 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1178 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:1183 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1184 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:1189 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1190 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:1195 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1196 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:1201 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1202 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:1207 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:1208 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:1213 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:1214 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:1219 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:1220 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:1225 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:1226 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:1231 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:1232 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:1237 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:1238 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:1244 +msgid "Enable email notifications" +msgstr "" + +#: common/models.py:1245 +msgid "Allow sending of emails for event notifications" +msgstr "" + +#: common/models.py:1251 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1252 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1258 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1259 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1265 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1266 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1272 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1273 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1279 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1280 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1286 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1287 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1293 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1294 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1300 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1301 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1307 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1308 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1314 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1315 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1321 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1322 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1328 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1329 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1335 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1336 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1342 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1343 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1349 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1350 +msgid "InvenTree navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1356 +msgid "Date Format" +msgstr "" + +#: common/models.py:1357 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1371 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1372 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:1430 company/forms.py:43 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:1437 company/serializers.py:264 +#: company/templates/company/supplier_part.html:256 +#: templates/js/translated/part.js:980 templates/js/translated/part.js:1966 +msgid "Price" +msgstr "" + +#: common/models.py:1438 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:1595 common/models.py:1734 +msgid "Endpoint" +msgstr "" + +#: common/models.py:1596 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:1605 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:1610 part/models.py:986 plugin/models.py:46 +#: templates/js/translated/table_filters.js:34 +#: templates/js/translated/table_filters.js:96 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 +msgid "Active" +msgstr "" + +#: common/models.py:1611 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:1625 +msgid "Token" +msgstr "" + +#: common/models.py:1626 +msgid "Token for access" +msgstr "" + +#: common/models.py:1633 +msgid "Secret" +msgstr "" + +#: common/models.py:1634 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:1701 +msgid "Message ID" +msgstr "" + +#: common/models.py:1702 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:1710 +msgid "Host" +msgstr "" + +#: common/models.py:1711 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:1718 +msgid "Header" +msgstr "" + +#: common/models.py:1719 +msgid "Header of this message" +msgstr "" + +#: common/models.py:1725 +msgid "Body" +msgstr "" + +#: common/models.py:1726 +msgid "Body of this message" +msgstr "" + +#: common/models.py:1735 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:1740 +msgid "Worked on" +msgstr "" + +#: common/models.py:1741 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/views.py:93 order/templates/order/purchase_order_detail.html:23 +#: order/views.py:243 part/views.py:208 +#: templates/patterns/wizard/upload.html:37 +msgid "Upload File" +msgstr "" + +#: common/views.py:94 order/views.py:244 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/views.py:209 templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:95 +msgid "Match Items" +msgstr "" + +#: common/views.py:440 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:495 +msgid "Parts imported" +msgstr "" + +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 +#: part/templates/part/import_wizard/match_references.html:19 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:35 +msgid "Previous Step" +msgstr "" + +#: company/forms.py:24 part/forms.py:46 +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: company/forms.py:25 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/models.py:105 +msgid "Company description" +msgstr "" + +#: company/models.py:106 +msgid "Description of the company" +msgstr "" + +#: company/models.py:112 company/templates/company/company_base.html:97 +#: templates/InvenTree/settings/plugin_settings.html:55 +#: templates/js/translated/company.js:349 +msgid "Website" +msgstr "" + +#: company/models.py:113 +msgid "Company website URL" +msgstr "" + +#: company/models.py:117 company/templates/company/company_base.html:115 +msgid "Address" +msgstr "" + +#: company/models.py:118 +msgid "Company address" +msgstr "" + +#: company/models.py:121 +msgid "Phone number" +msgstr "" + +#: company/models.py:122 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:125 company/templates/company/company_base.html:129 +#: templates/InvenTree/settings/user.html:48 +msgid "Email" +msgstr "" + +#: company/models.py:125 +msgid "Contact email address" +msgstr "" + +#: company/models.py:128 company/templates/company/company_base.html:136 +msgid "Contact" +msgstr "" + +#: company/models.py:129 +msgid "Point of contact" +msgstr "" + +#: company/models.py:131 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:139 part/models.py:878 +msgid "Image" +msgstr "" + +#: company/models.py:144 +msgid "is customer" +msgstr "" + +#: company/models.py:144 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:146 +msgid "is supplier" +msgstr "" + +#: company/models.py:146 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:148 +msgid "is manufacturer" +msgstr "" + +#: company/models.py:148 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:152 company/serializers.py:270 +#: company/templates/company/company_base.html:103 stock/serializers.py:179 +msgid "Currency" +msgstr "" + +#: company/models.py:155 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:320 company/models.py:535 stock/models.py:581 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 +msgid "Base Part" +msgstr "" + +#: company/models.py:324 company/models.py:539 +msgid "Select part" +msgstr "" + +#: company/models.py:335 company/templates/company/company_base.html:73 +#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/supplier_part.html:97 +#: stock/templates/stock/item_base.html:364 +#: templates/js/translated/company.js:333 +#: templates/js/translated/company.js:517 +#: templates/js/translated/company.js:800 templates/js/translated/part.js:235 +#: templates/js/translated/table_filters.js:411 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:336 templates/js/translated/part.js:236 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/templates/company/supplier_part.html:105 +#: templates/js/translated/company.js:533 +#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:938 +msgid "MPN" +msgstr "" + +#: company/models.py:343 templates/js/translated/part.js:247 +msgid "Manufacturer Part Number" +msgstr "" + +#: company/models.py:349 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:355 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:409 company/models.py:558 +#: company/templates/company/manufacturer_part.html:6 +#: company/templates/company/manufacturer_part.html:23 +#: stock/templates/stock/item_base.html:374 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:416 +msgid "Parameter name" +msgstr "" + +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:2164 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:758 templates/js/translated/stock.js:1303 +msgid "Value" +msgstr "" + +#: company/models.py:423 +msgid "Parameter value" +msgstr "" + +#: company/models.py:429 part/models.py:953 part/models.py:2561 +#: part/templates/part/part_base.html:306 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:764 +msgid "Units" +msgstr "" + +#: company/models.py:430 +msgid "Parameter units" +msgstr "" + +#: company/models.py:502 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:545 company/templates/company/company_base.html:78 +#: company/templates/company/supplier_part.html:87 order/models.py:227 +#: order/templates/order/order_base.html:112 +#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 +#: templates/js/translated/company.js:337 +#: templates/js/translated/company.js:774 templates/js/translated/order.js:958 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:906 +#: templates/js/translated/table_filters.js:415 +msgid "Supplier" +msgstr "" + +#: company/models.py:546 templates/js/translated/part.js:217 +msgid "Select supplier" +msgstr "" + +#: company/models.py:551 company/templates/company/supplier_part.html:91 +#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:924 +msgid "SKU" +msgstr "" + +#: company/models.py:552 templates/js/translated/part.js:228 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:559 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:565 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:571 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:576 company/templates/company/supplier_part.html:119 +#: part/models.py:2786 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 +msgid "Note" +msgstr "" + +#: company/models.py:580 part/models.py:1871 +msgid "base cost" +msgstr "" + +#: company/models.py:580 part/models.py:1871 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:582 company/templates/company/supplier_part.html:112 +#: stock/models.py:605 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 +msgid "Packaging" +msgstr "" + +#: company/models.py:582 +msgid "Part packaging" +msgstr "" + +#: company/models.py:584 part/models.py:1873 +msgid "multiple" +msgstr "" + +#: company/models.py:584 +msgid "Order multiple" +msgstr "" + +#: company/models.py:708 +msgid "last updated" +msgstr "" + +#: company/serializers.py:70 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:71 +msgid "Currency Code" +msgstr "" + +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 +msgid "Company" +msgstr "" + +#: company/templates/company/company_base.html:22 +#: templates/js/translated/order.js:279 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:26 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:31 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:32 +#: templates/js/translated/company.js:265 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:36 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:37 +#: company/templates/company/company_base.html:159 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:56 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:83 order/models.py:574 +#: order/templates/order/sales_order_base.html:115 stock/models.py:624 +#: stock/models.py:625 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 +#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:108 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:122 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:205 +#: part/templates/part/part_base.html:491 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/detail.html:14 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:118 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:18 +#: order/templates/order/order_wizard/select_parts.html:44 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:118 +#: part/templates/part/detail.html:353 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:127 +#: company/templates/company/manufacturer_part.html:156 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 +msgid "Options" +msgstr "" + +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 +#: part/templates/part/category.html:174 +msgid "Order parts" +msgstr "" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" +msgstr "" + +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 +msgid "Delete Parts" +msgstr "" + +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:65 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:106 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:116 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 +#: users/models.py:45 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:120 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:121 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:142 +#: company/templates/company/sidebar.html:20 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:58 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:146 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1295 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:184 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:215 +#: part/templates/part/detail.html:452 +msgid "Delete Supplier Parts?" +msgstr "" + +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:453 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: company/templates/company/index.html:8 +msgid "Supplier List" +msgstr "" + +#: company/templates/company/manufacturer_part.html:14 company/views.py:55 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 +#: templates/navbar.html:46 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/supplier_part.html:34 +#: company/templates/company/supplier_part.html:159 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:40 +#: templates/js/translated/company.js:565 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:44 +#: templates/js/translated/company.js:566 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/supplier_part.html:63 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/supplier_part.html:15 company/views.py:49 +#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: part/templates/part/detail.html:364 +msgid "Delete supplier parts" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:254 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 +msgid "Delete" +msgstr "" + +#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:147 +#: part/templates/part/detail.html:185 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part.html:66 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:158 +msgid "Delete parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:191 +#: part/templates/part/detail.html:865 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:239 +msgid "Selected parameters will be deleted" +msgstr "" + +#: company/templates/company/manufacturer_part.html:251 +msgid "Delete Parameters" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 stock/models.py:589 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 +msgid "Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:38 +#: templates/js/translated/company.js:863 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:42 +#: templates/js/translated/company.js:864 +msgid "Delete supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:138 +#: company/templates/company/supplier_part_navbar.html:12 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:141 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:142 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:155 +#: company/templates/company/supplier_part_navbar.html:19 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:160 +#: part/templates/part/detail.html:81 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:179 +#: part/templates/part/prices.html:7 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:184 +#: company/templates/company/supplier_part.html:298 +#: part/templates/part/prices.html:271 part/views.py:1238 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +msgid "No price break information found" +msgstr "" + +#: company/templates/company/supplier_part.html:224 part/views.py:1300 +msgid "Delete Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:238 part/views.py:1286 +msgid "Edit Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:263 +msgid "Edit price break" +msgstr "" + +#: company/templates/company/supplier_part.html:264 +msgid "Delete price break" +msgstr "" + +#: company/templates/company/supplier_part.html:273 +msgid "Last updated" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:15 +#: part/templates/part/part_sidebar.html:15 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:150 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1369 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:28 +msgid "Stock" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:22 +msgid "Orders" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:26 +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:29 +#: part/templates/part/part_sidebar.html:32 +msgid "Pricing" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 +msgid "Stock Items" +msgstr "" + +#: company/views.py:50 +msgid "New Supplier" +msgstr "" + +#: company/views.py:56 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:61 templates/InvenTree/search.html:208 +#: templates/navbar.html:57 +msgid "Customers" +msgstr "" + +#: company/views.py:62 +msgid "New Customer" +msgstr "" + +#: company/views.py:69 templates/js/translated/search.js:159 +msgid "Companies" +msgstr "" + +#: company/views.py:70 +msgid "New Company" +msgstr "" + +#: company/views.py:129 part/views.py:589 +msgid "Download Image" +msgstr "" + +#: company/views.py:158 part/views.py:621 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:165 part/views.py:628 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + +#: company/views.py:174 part/views.py:637 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: label/api.py:97 report/api.py:203 +msgid "No valid objects provided to template" +msgstr "" + +#: label/models.py:113 +msgid "Label name" +msgstr "" + +#: label/models.py:120 +msgid "Label description" +msgstr "" + +#: label/models.py:127 +msgid "Label" +msgstr "" + +#: label/models.py:128 +msgid "Label template file" +msgstr "" + +#: label/models.py:134 report/models.py:294 +msgid "Enabled" +msgstr "" + +#: label/models.py:135 +msgid "Label template is enabled" +msgstr "" + +#: label/models.py:140 +msgid "Width [mm]" +msgstr "" + +#: label/models.py:141 +msgid "Label width, specified in mm" +msgstr "" + +#: label/models.py:147 +msgid "Height [mm]" +msgstr "" + +#: label/models.py:148 +msgid "Label height, specified in mm" +msgstr "" + +#: label/models.py:154 report/models.py:287 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:155 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:258 +msgid "Query filters (comma-separated list of key=value pairs)," +msgstr "" + +#: label/models.py:259 label/models.py:319 label/models.py:366 +#: report/models.py:318 report/models.py:455 report/models.py:493 +msgid "Filters" +msgstr "" + +#: label/models.py:318 +msgid "Query filters (comma-separated list of key=value pairs" +msgstr "" + +#: label/models.py:365 +msgid "Part query filters (comma-separated value of key=value pairs)" +msgstr "" + +#: order/forms.py:24 order/templates/order/order_base.html:52 +msgid "Place order" +msgstr "" + +#: order/forms.py:35 order/templates/order/order_base.html:60 +msgid "Mark order as complete" +msgstr "" + +#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 +#: order/templates/order/sales_order_base.html:60 +msgid "Cancel order" +msgstr "" + +#: order/models.py:125 +msgid "Order description" +msgstr "" + +#: order/models.py:127 +msgid "Link to external page" +msgstr "" + +#: order/models.py:135 +msgid "Created By" +msgstr "" + +#: order/models.py:142 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:147 +msgid "Order notes" +msgstr "" + +#: order/models.py:214 order/models.py:564 +msgid "Order reference" +msgstr "" + +#: order/models.py:219 order/models.py:579 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:228 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:231 order/templates/order/order_base.html:118 +#: templates/js/translated/order.js:967 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:231 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:238 +msgid "received by" +msgstr "" + +#: order/models.py:243 +msgid "Issue Date" +msgstr "" + +#: order/models.py:244 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:249 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:250 +msgid "Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:256 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:285 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:430 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:575 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:581 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:581 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:586 +msgid "Target date for order completion. Order will be overdue after this date." +msgstr "" + +#: order/models.py:589 order/models.py:1084 +#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:596 +msgid "shipped by" +msgstr "" + +#: order/models.py:662 +msgid "Order cannot be completed as no parts have been assigned" +msgstr "" + +#: order/models.py:666 +msgid "Only a pending order can be marked as complete" +msgstr "" + +#: order/models.py:669 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:672 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:837 +msgid "Item quantity" +msgstr "" + +#: order/models.py:843 +msgid "Line item reference" +msgstr "" + +#: order/models.py:845 +msgid "Line item notes" +msgstr "" + +#: order/models.py:850 +msgid "Target shipping date for this line item" +msgstr "" + +#: order/models.py:878 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:891 order/models.py:982 order/models.py:1078 +#: templates/js/translated/order.js:2025 +msgid "Order" +msgstr "" + +#: order/models.py:892 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_po_report.html:76 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:881 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 +msgid "Purchase Order" +msgstr "" + +#: order/models.py:913 +msgid "Supplier part" +msgstr "" + +#: order/models.py:920 order/templates/order/order_base.html:163 +#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 +#: templates/js/translated/part.js:975 templates/js/translated/part.js:1002 +#: templates/js/translated/table_filters.js:330 +msgid "Received" +msgstr "" + +#: order/models.py:921 +msgid "Number of items received" +msgstr "" + +#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:718 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:929 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:937 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:992 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +msgid "Sale Price" +msgstr "" + +#: order/models.py:993 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:998 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1085 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1092 +msgid "Checked By" +msgstr "" + +#: order/models.py:1093 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1101 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1108 +msgid "Shipment notes" +msgstr "" + +#: order/models.py:1115 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1116 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1126 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1129 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1207 order/models.py:1209 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:1213 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:1215 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:1218 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:1222 +msgid "StockItem is over-allocated" +msgstr "" + +#: order/models.py:1228 order/serializers.py:827 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:1231 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:1232 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:1240 +msgid "Line" +msgstr "" + +#: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 +#: templates/js/translated/model_renderers.js:304 +msgid "Shipment" +msgstr "" + +#: order/models.py:1249 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 +msgid "Item" +msgstr "" + +#: order/models.py:1262 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:1265 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/serializers.py:187 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:238 order/serializers.py:883 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:244 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:254 order/serializers.py:359 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:273 templates/js/translated/order.js:574 +msgid "Enter batch code for incoming stock items" +msgstr "" + +#: order/serializers.py:281 templates/js/translated/order.js:585 +msgid "Enter serial numbers for incoming stock items" +msgstr "" + +#: order/serializers.py:294 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:295 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:312 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:331 +msgid "An integer quantity must be provided for trackable parts" +msgstr "" + +#: order/serializers.py:371 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:388 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:399 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:672 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:742 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:792 order/serializers.py:895 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:814 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:908 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:932 order/serializers.py:1057 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:935 order/serializers.py:1060 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:987 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:997 +msgid "The following serial numbers are already allocated" +msgstr "" + +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 +msgid "Are you sure you want to delete this attachment?" +msgstr "" + +#: order/templates/order/order_base.html:33 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:35 +#: order/templates/order/sales_order_base.html:45 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:41 +#: order/templates/order/sales_order_base.html:54 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:45 +#: order/templates/order/sales_order_base.html:58 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:56 +msgid "Receive items" +msgstr "" + +#: order/templates/order/order_base.html:58 +#: order/templates/order/purchase_order_detail.html:30 +msgid "Receive Items" +msgstr "" + +#: order/templates/order/order_base.html:62 +#: order/templates/order/sales_order_base.html:67 order/views.py:181 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/sales_order_base.html:79 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/sales_order_base.html:84 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:94 +#: order/templates/order/sales_order_base.html:89 +msgid "Order Status" +msgstr "" + +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:128 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:130 +#: order/templates/order/sales_order_base.html:134 +#: order/templates/order/sales_order_base.html:144 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:149 +#: report/templates/report/inventree_build_order_base.html:122 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:219 +msgid "Edit Purchase Order" +msgstr "" + +#: order/templates/order/order_cancel.html:8 +msgid "Cancelling this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_complete.html:7 +msgid "Mark this order as complete?" +msgstr "" + +#: order/templates/order/order_complete.html:10 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: order/templates/order/order_complete.html:11 +msgid "Completing this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_issue.html:8 +msgid "After placing this purchase order, line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 +#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:13 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:14 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:11 +msgid "Step 1 of 2 - Select Part Suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:16 +msgid "Select suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:20 +msgid "No purchaseable parts selected" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:33 +msgid "Select Supplier" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 +#, python-format +msgid "Select a supplier for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:77 +#: part/templates/part/set_category.html:32 +msgid "Remove part" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:8 +msgid "Step 2 of 2 - Select Purchase Orders" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:12 +msgid "Select existing purchase orders, or create new orders." +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:31 +#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491 +#: templates/js/translated/order.js:1621 +msgid "Items" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:32 +msgid "Select Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:45 +#, python-format +msgid "Create new purchase order for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:68 +#, python-format +msgid "Select a purchase order for %(name)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_po_report.html:84 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:17 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:29 +msgid "Receive selected items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:49 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:33 +msgid "Print Order Reports" +msgstr "" + +#: order/templates/order/sales_order_base.html:43 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:47 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/sales_order_base.html:66 +#: order/templates/order/sales_order_base.html:229 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:102 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:122 +#: templates/js/translated/order.js:1449 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/sales_order_base.html:140 +#: order/templates/order/sales_order_detail.html:77 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:215 +msgid "Edit Sales Order" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:8 +#: stock/templates/stock/stockitem_convert.html:13 +msgid "Warning" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:9 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/sales_order_detail.html:17 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:43 +#: order/templates/order/so_sidebar.html:8 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:56 +msgid "New Shipment" +msgstr "" + +#: order/views.py:99 +msgid "Cancel Order" +msgstr "" + +#: order/views.py:108 order/views.py:134 +msgid "Confirm order cancellation" +msgstr "" + +#: order/views.py:111 order/views.py:137 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/views.py:125 +msgid "Cancel sales order" +msgstr "" + +#: order/views.py:151 +msgid "Issue Order" +msgstr "" + +#: order/views.py:160 +msgid "Confirm order placement" +msgstr "" + +#: order/views.py:170 +msgid "Purchase order issued" +msgstr "" + +#: order/views.py:197 +msgid "Confirm order completion" +msgstr "" + +#: order/views.py:208 +msgid "Purchase order completed" +msgstr "" + +#: order/views.py:245 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:489 +msgid "Update prices" +msgstr "" + +#: order/views.py:747 +#, python-brace-format +msgid "Ordered {n} parts" +msgstr "" + +#: order/views.py:858 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:864 +msgid "Price not found" +msgstr "" + +#: order/views.py:867 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:872 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/api.py:491 +msgid "Incoming Purchase Order" +msgstr "" + +#: part/api.py:511 +msgid "Outgoing Sales Order" +msgstr "" + +#: part/api.py:529 +msgid "Stock produced by Build Order" +msgstr "" + +#: part/api.py:561 +msgid "Stock required for Build Order" +msgstr "" + +#: part/api.py:641 +msgid "Valid" +msgstr "" + +#: part/api.py:642 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:647 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:1027 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:1031 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:1046 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 +msgid "This field is required" +msgstr "" + +#: part/bom.py:125 part/models.py:112 part/models.py:887 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:356 +msgid "Default Location" +msgstr "" + +#: part/bom.py:126 templates/email/low_stock_notification.html:17 +msgid "Total Stock" +msgstr "" + +#: part/bom.py:127 part/templates/part/part_base.html:189 +msgid "Available Stock" +msgstr "" + +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1211 templates/js/translated/part.js:1383 +#: templates/js/translated/part.js:1399 +msgid "On Order" +msgstr "" + +#: part/forms.py:84 +msgid "Select part category" +msgstr "" + +#: part/forms.py:121 +msgid "Add parameter template to same level categories" +msgstr "" + +#: part/forms.py:125 +msgid "Add parameter template to all categories" +msgstr "" + +#: part/forms.py:145 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:113 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:126 part/models.py:2637 part/templates/part/category.html:15 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:127 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 +msgid "Part Categories" +msgstr "" + +#: part/models.py:368 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1762 templates/js/translated/search.js:99 +#: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 +msgid "Parts" +msgstr "" + +#: part/models.py:460 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:540 part/models.py:552 +#, python-brace-format +msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" +msgstr "" + +#: part/models.py:682 +msgid "Next available serial numbers are" +msgstr "" + +#: part/models.py:686 +msgid "Next available serial number is" +msgstr "" + +#: part/models.py:691 +msgid "Most recent serial number is" +msgstr "" + +#: part/models.py:786 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:811 part/models.py:2690 +msgid "Part name" +msgstr "" + +#: part/models.py:818 +msgid "Is Template" +msgstr "" + +#: part/models.py:819 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:829 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:830 +msgid "Variant Of" +msgstr "" + +#: part/models.py:836 +msgid "Part description" +msgstr "" + +#: part/models.py:841 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:320 +msgid "Keywords" +msgstr "" + +#: part/models.py:842 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:849 part/models.py:2387 part/models.py:2636 +#: part/templates/part/part_base.html:283 +#: part/templates/part/set_category.html:15 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1351 +msgid "Category" +msgstr "" + +#: part/models.py:850 +msgid "Part category" +msgstr "" + +#: part/models.py:855 part/templates/part/part_base.html:292 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1304 +#: templates/js/translated/stock.js:1668 +msgid "IPN" +msgstr "" + +#: part/models.py:856 +msgid "Internal Part Number" +msgstr "" + +#: part/models.py:862 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:863 part/templates/part/part_base.html:299 +#: report/models.py:196 templates/js/translated/part.js:665 +msgid "Revision" +msgstr "" + +#: part/models.py:885 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:932 part/templates/part/part_base.html:365 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:933 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:940 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:941 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:946 part/templates/part/part_base.html:200 +msgid "Minimum Stock" +msgstr "" + +#: part/models.py:947 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:954 +msgid "Stock keeping units for this part" +msgstr "" + +#: part/models.py:960 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:966 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:972 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:977 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:982 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:987 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:992 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:997 +msgid "Part notes - supports Markdown formatting" +msgstr "" + +#: part/models.py:1000 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:1000 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:1003 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:1005 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1009 +msgid "Creation User" +msgstr "" + +#: part/models.py:1873 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:2437 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2454 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2474 templates/js/translated/part.js:1813 +#: templates/js/translated/stock.js:1283 +msgid "Test Name" +msgstr "" + +#: part/models.py:2475 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:2480 +msgid "Test Description" +msgstr "" + +#: part/models.py:2481 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:2486 templates/js/translated/part.js:1822 +#: templates/js/translated/table_filters.js:294 +msgid "Required" +msgstr "" + +#: part/models.py:2487 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:2492 templates/js/translated/part.js:1830 +msgid "Requires Value" +msgstr "" + +#: part/models.py:2493 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:2498 templates/js/translated/part.js:1837 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:2499 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:2510 +#, python-brace-format +msgid "Illegal character in template name ({c})" +msgstr "" + +#: part/models.py:2546 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:2554 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:2561 +msgid "Parameter Units" +msgstr "" + +#: part/models.py:2591 +msgid "Parent Part" +msgstr "" + +#: part/models.py:2593 part/models.py:2642 part/models.py:2643 +#: templates/InvenTree/settings/settings.html:219 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:2595 +msgid "Data" +msgstr "" + +#: part/models.py:2595 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:2647 templates/InvenTree/settings/settings.html:228 +msgid "Default Value" +msgstr "" + +#: part/models.py:2648 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:2682 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2685 templates/js/translated/model_renderers.js:203 +msgid "Part ID" +msgstr "" + +#: part/models.py:2686 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:2689 +msgid "Part Name" +msgstr "" + +#: part/models.py:2693 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2694 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:2697 +msgid "Level" +msgstr "" + +#: part/models.py:2698 +msgid "BOM level" +msgstr "" + +#: part/models.py:2759 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2767 +msgid "Sub part" +msgstr "" + +#: part/models.py:2768 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:2774 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:2776 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 +#: templates/js/translated/table_filters.js:92 +msgid "Optional" +msgstr "" + +#: part/models.py:2776 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:2779 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:2780 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:2783 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:2786 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:2788 +msgid "Checksum" +msgstr "" + +#: part/models.py:2788 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:2792 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 +#: templates/js/translated/table_filters.js:68 +#: templates/js/translated/table_filters.js:88 +msgid "Inherited" +msgstr "" + +#: part/models.py:2793 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:2798 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 +msgid "Allow Variants" +msgstr "" + +#: part/models.py:2799 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:2884 stock/models.py:467 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:2893 part/models.py:2895 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:3007 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:3029 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:3041 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:3049 +msgid "Substitute part" +msgstr "" + +#: part/models.py:3060 +msgid "Part 1" +msgstr "" + +#: part/models.py:3064 +msgid "Part 2" +msgstr "" + +#: part/models.py:3064 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:3096 +msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" +msgstr "" + +#: part/serializers.py:835 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:846 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:847 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:852 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:853 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:858 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:859 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:864 +msgid "Copy Substitute Parts" +msgstr "" + +#: part/serializers.py:865 +msgid "Copy substitute parts when duplicate BOM items" +msgstr "" + +#: part/serializers.py:909 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:910 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:937 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:980 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:983 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:986 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:995 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:1003 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:1022 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:18 +msgid "Low stock notification" +msgstr "" + +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +#, python-format +msgid "The BOM for %(part)s has 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" +msgstr "" + +#: part/templates/part/bom.html:21 +#, python-format +msgid "The BOM for %(part)s has not been validated." +msgstr "" + +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/bom.html:34 +msgid "Delete Items" +msgstr "" + +#: part/templates/part/category.html:28 part/templates/part/category.html:32 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:36 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:42 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:47 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:48 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:53 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:61 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "New Category" +msgstr "" + +#: part/templates/part/category.html:80 part/templates/part/category.html:93 +msgid "Category Path" +msgstr "" + +#: part/templates/part/category.html:94 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:114 part/templates/part/category.html:211 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/templates/part/category.html:119 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:157 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:158 templates/js/translated/bom.js:365 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set category" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set Category" +msgstr "" + +#: part/templates/part/category.html:176 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export Data" +msgstr "" + +#: part/templates/part/category.html:201 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:309 +msgid "Create Part Category" +msgstr "" + +#: part/templates/part/category.html:329 +msgid "Create Part" +msgstr "" + +#: part/templates/part/category.html:332 +msgid "Create another part after this one" +msgstr "" + +#: part/templates/part/category.html:333 +msgid "Part created successfully" +msgstr "" + +#: part/templates/part/category_delete.html:7 +msgid "Are you sure you want to delete this part category?" +msgstr "" + +#: part/templates/part/category_delete.html:12 +#, python-format +msgid "This category contains %(n)s child categories" +msgstr "" + +#: part/templates/part/category_delete.html:14 +#, python-format +msgid "If this category is deleted, these child categories will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:16 +msgid "If this category is deleted, these child categories will be moved to the top level part category" +msgstr "" + +#: part/templates/part/category_delete.html:23 +#, python-format +msgid "This category contains %(n)s parts" +msgstr "" + +#: part/templates/part/category_delete.html:25 +#, python-format +msgid "If this category is deleted, these parts will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:27 +msgid "If this category is deleted, these parts will be moved to the top level part category" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 +msgid "Duplicate Part" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:20 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:52 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:57 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:156 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:157 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:184 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:251 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:257 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:267 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 +msgid "Copy BOM" +msgstr "" + +#: part/templates/part/detail.html:269 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:274 +msgid "New BOM Item" +msgstr "" + +#: part/templates/part/detail.html:275 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:288 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:306 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:43 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:349 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:377 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:393 +msgid "Delete manufacturer parts" +msgstr "" + +#: part/templates/part/detail.html:596 +msgid "Delete selected BOM items?" +msgstr "" + +#: part/templates/part/detail.html:597 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: part/templates/part/detail.html:646 +msgid "Create BOM Item" +msgstr "" + +#: part/templates/part/detail.html:690 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:698 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:795 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/detail.html:928 +#, python-format +msgid "Purchase Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:940 +#, python-format +msgid "Unit Price-Cost Difference - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:952 +#, python-format +msgid "Supplier Unit Cost - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1041 +#, python-format +msgid "Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: templates/patterns/wizard/upload.html:13 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:14 +msgid "Unsuffitient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:13 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:35 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/location.html:34 +msgid "Barcode actions" +msgstr "" + +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:39 +#: stock/templates/stock/location.html:36 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:55 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:67 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:73 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:88 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:91 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:94 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:97 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:116 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:120 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:124 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:128 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:132 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:136 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:143 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:765 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 +msgid "Inactive" +msgstr "" + +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:599 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:177 +#, python-format +msgid "This part is a variant of %(link)s" +msgstr "" + +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 +#: templates/js/translated/table_filters.js:193 +msgid "In Stock" +msgstr "" + +#: part/templates/part/part_base.html:215 templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:220 +msgid "Allocated to Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:224 +#: part/templates/part/part_base.html:247 +msgid "Required quantity has not been allocated" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: part/templates/part/part_base.html:249 +msgid "Required quantity has been allocated" +msgstr "" + +#: part/templates/part/part_base.html:236 +msgid "Required for Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:243 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:258 templates/js/translated/bom.js:909 +msgid "Can Build" +msgstr "" + +#: part/templates/part/part_base.html:264 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1215 +#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1403 +msgid "Building" +msgstr "" + +#: part/templates/part/part_base.html:313 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:342 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:346 +#: stock/templates/stock/item_base.html:166 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:469 part/templates/part/prices.html:144 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:512 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:593 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 +msgid "Total Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 +#: templates/js/translated/bom.js:863 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 +#: part/templates/part/prices.html:243 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_sidebar.html:12 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:28 +msgid "Used In" +msgstr "" + +#: part/templates/part/part_sidebar.html:47 +msgid "Scheduling" +msgstr "" + +#: part/templates/part/part_sidebar.html:51 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/partial_delete.html:9 +#, python-format +msgid "" +"Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" +"
        Disable the \"Active\" part attribute and re-try.\n" +" " +msgstr "" + +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "" + +#: part/templates/part/partial_delete.html:22 +#, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format +msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:43 +#, python-format +msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:54 +#, python-format +msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:65 +#, python-format +msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." +msgstr "" + +#: part/templates/part/prices.html:16 +msgid "Pricing ranges" +msgstr "" + +#: part/templates/part/prices.html:22 +msgid "Show supplier cost" +msgstr "" + +#: part/templates/part/prices.html:23 +msgid "Show purchase price" +msgstr "" + +#: part/templates/part/prices.html:50 +msgid "Show BOM cost" +msgstr "" + +#: part/templates/part/prices.html:117 +msgid "Show sale cost" +msgstr "" + +#: part/templates/part/prices.html:118 +msgid "Show sale price" +msgstr "" + +#: part/templates/part/prices.html:140 +msgid "Calculation parameters" +msgstr "" + +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 +msgid "Supplier Cost" +msgstr "" + +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:181 +msgid "Stock Pricing" +msgstr "" + +#: part/templates/part/prices.html:190 +msgid "No stock pricing history is available for this part." +msgstr "" + +#: part/templates/part/prices.html:200 +msgid "Internal Cost" +msgstr "" + +#: part/templates/part/prices.html:215 part/views.py:1309 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:230 +msgid "BOM Cost" +msgstr "" + +#: part/templates/part/prices.html:256 +msgid "Sale Cost" +msgstr "" + +#: part/templates/part/prices.html:296 +msgid "No sale pice history available for this part." +msgstr "" + +#: part/templates/part/set_category.html:9 +msgid "Set category for the following parts" +msgstr "" + +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1203 templates/js/translated/part.js:1407 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +#, python-format +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" + +#: part/templatetags/inventree_extras.py:189 +msgid "Unknown database" +msgstr "" + +#: part/views.py:88 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:138 +#, python-brace-format +msgid "Set category for {n} parts" +msgstr "" + +#: part/views.py:210 +msgid "Match References" +msgstr "" + +#: part/views.py:507 +msgid "None" +msgstr "" + +#: part/views.py:566 +msgid "Part QR Code" +msgstr "" + +#: part/views.py:668 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:694 +msgid "Updated part image" +msgstr "" + +#: part/views.py:697 +msgid "Part image not found" +msgstr "" + +#: part/views.py:785 +msgid "Confirm Part Deletion" +msgstr "" + +#: part/views.py:792 +msgid "Part was deleted" +msgstr "" + +#: part/views.py:801 +msgid "Part Pricing" +msgstr "" + +#: part/views.py:950 +msgid "Create Part Parameter Template" +msgstr "" + +#: part/views.py:960 +msgid "Edit Part Parameter Template" +msgstr "" + +#: part/views.py:967 +msgid "Delete Part Parameter Template" +msgstr "" + +#: part/views.py:1010 templates/js/translated/part.js:317 +msgid "Edit Part Category" +msgstr "" + +#: part/views.py:1048 +msgid "Delete Part Category" +msgstr "" + +#: part/views.py:1054 +msgid "Part category was deleted" +msgstr "" + +#: part/views.py:1063 +msgid "Create Category Parameter Template" +msgstr "" + +#: part/views.py:1164 +msgid "Edit Category Parameter Template" +msgstr "" + +#: part/views.py:1220 +msgid "Delete Category Parameter Template" +msgstr "" + +#: part/views.py:1242 +msgid "Added new price break" +msgstr "" + +#: part/views.py:1318 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:1326 +msgid "Delete Internal Price Break" +msgstr "" + +#: plugin/apps.py:52 +msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." +msgstr "" + +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 +msgid "No author found" +msgstr "" + +#: plugin/integration.py:160 +msgid "No date found" +msgstr "" + +#: plugin/models.py:26 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:27 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:32 +msgid "Key" +msgstr "" + +#: plugin/models.py:33 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:41 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:47 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:182 +msgid "Plugin" +msgstr "" + +#: plugin/samples/integration/sample.py:42 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:43 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:48 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:49 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/serializers.py:49 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:50 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:55 +msgid "Package Name" +msgstr "" + +#: plugin/serializers.py:56 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:59 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:60 +msgid "This will install this plugin now into the current instance. The instance will go into maintenance." +msgstr "" + +#: plugin/serializers.py:75 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:77 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: report/api.py:235 report/api.py:282 +#, python-brace-format +msgid "Template file '{template}' is missing or does not exist" +msgstr "" + +#: report/models.py:178 +msgid "Template name" +msgstr "" + +#: report/models.py:184 +msgid "Report template file" +msgstr "" + +#: report/models.py:191 +msgid "Report template description" +msgstr "" + +#: report/models.py:197 +msgid "Report revision number (auto-increments)" +msgstr "" + +#: report/models.py:288 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:295 +msgid "Report template is enabled" +msgstr "" + +#: report/models.py:319 +msgid "StockItem query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:327 +msgid "Include Installed Tests" +msgstr "" + +#: report/models.py:328 +msgid "Include test results for stock items installed inside assembled item" +msgstr "" + +#: report/models.py:378 +msgid "Build Filters" +msgstr "" + +#: report/models.py:379 +msgid "Build query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:421 +msgid "Part Filters" +msgstr "" + +#: report/models.py:422 +msgid "Part query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:456 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:494 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:548 +msgid "Snippet" +msgstr "" + +#: report/models.py:549 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:553 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:588 +msgid "Asset" +msgstr "" + +#: report/models.py:589 +msgid "Report asset file" +msgstr "" + +#: report/models.py:592 +msgid "Asset file description" +msgstr "" + +#: report/templates/report/inventree_build_order_base.html:147 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:79 +#: stock/models.py:629 stock/templates/stock/item_base.html:156 +#: templates/js/translated/build.js:374 templates/js/translated/build.js:522 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 +#: templates/js/translated/model_renderers.js:106 +#: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 +msgid "Serial Number" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:88 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:2152 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:94 +#: stock/models.py:2158 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 +msgid "Date" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:108 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:110 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 +msgid "Serial" +msgstr "" + +#: stock/api.py:543 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:550 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:575 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:686 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 +msgid "Expiry Date" +msgstr "" + +#: stock/forms.py:75 stock/forms.py:199 +msgid "Expiration date for this stock item" +msgstr "" + +#: stock/forms.py:78 +msgid "Enter unique serial numbers (or leave blank)" +msgstr "" + +#: stock/forms.py:133 +msgid "Destination for serialized stock (by default, will remain in current location)" +msgstr "" + +#: stock/forms.py:135 +msgid "Serial numbers" +msgstr "" + +#: stock/forms.py:135 +msgid "Unique serial numbers (must match quantity)" +msgstr "" + +#: stock/forms.py:137 stock/forms.py:171 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/forms.py:169 +msgid "Destination location for uninstalled items" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm uninstall" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm removal of installed stock items" +msgstr "" + +#: stock/models.py:91 stock/models.py:723 +#: stock/templates/stock/item_base.html:407 +msgid "Owner" +msgstr "" + +#: stock/models.py:92 stock/models.py:724 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:442 +msgid "StockItem with this serial number already exists" +msgstr "" + +#: stock/models.py:484 +#, python-brace-format +msgid "Part type ('{pf}') must be {pe}" +msgstr "" + +#: stock/models.py:494 stock/models.py:503 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:495 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:517 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:523 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:530 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:573 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:582 +msgid "Base part" +msgstr "" + +#: stock/models.py:590 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:596 stock/templates/stock/location.html:16 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:599 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:606 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:612 stock/templates/stock/item_base.html:282 +msgid "Installed In" +msgstr "" + +#: stock/models.py:615 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:631 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:645 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:649 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:658 +msgid "Source Build" +msgstr "" + +#: stock/models.py:660 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:671 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:674 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:680 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:687 +msgid "Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:700 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:700 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:710 stock/templates/stock/item.html:137 +msgid "Stock Item Notes" +msgstr "" + +#: stock/models.py:719 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:751 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1271 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1277 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1283 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({n})" +msgstr "" + +#: stock/models.py:1286 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1289 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1296 +#, python-brace-format +msgid "Serial numbers already exist: {exists}" +msgstr "" + +#: stock/models.py:1367 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1370 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1373 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1376 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1379 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1382 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1389 stock/serializers.py:832 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1393 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1397 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1401 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1573 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:2072 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:2129 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:2135 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:2153 +msgid "Test name" +msgstr "" + +#: stock/models.py:2159 +msgid "Test result" +msgstr "" + +#: stock/models.py:2165 +msgid "Test output value" +msgstr "" + +#: stock/models.py:2172 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2178 +msgid "Test notes" +msgstr "" + +#: stock/serializers.py:173 +msgid "Purchase price of this stock item" +msgstr "" + +#: stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: stock/serializers.py:294 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:309 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:315 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:333 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:346 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:363 stock/views.py:1019 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:650 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:654 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:684 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:690 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:698 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:708 stock/serializers.py:938 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:796 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:801 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:802 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:807 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:808 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:818 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:900 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:928 +msgid "Stock transaction notes" +msgstr "" + +#: stock/templates/stock/item.html:17 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:22 +msgid "New Entry" +msgstr "" + +#: stock/templates/stock/item.html:74 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:82 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:91 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:99 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:103 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:152 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:42 +#: templates/js/translated/barcode.js:330 +#: templates/js/translated/barcode.js:335 +msgid "Unlink Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:44 +msgid "Link Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:54 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:70 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:83 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:93 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:118 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:120 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:123 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 +msgid "Expired" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 +msgid "Stale" +msgstr "" + +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 +msgid "Last Updated" +msgstr "" + +#: stock/templates/stock/item_base.html:211 +msgid "Last Stocktake" +msgstr "" + +#: stock/templates/stock/item_base.html:215 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:224 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:225 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:238 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:246 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:254 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:260 +msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +msgstr "" + +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1331 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:308 +msgid "Barcode Identifier" +msgstr "" + +#: stock/templates/stock/item_base.html:350 +msgid "Parent Item" +msgstr "" + +#: stock/templates/stock/item_base.html:368 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:393 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:411 +msgid "You are not in the list of owners of this item. This stock item cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 +msgid "Read only" +msgstr "" + +#: stock/templates/stock/item_base.html:486 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_delete.html:9 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: stock/templates/stock/item_delete.html:12 +#, python-format +msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:40 +msgid "Check-in Items" +msgstr "" + +#: stock/templates/stock/location.html:68 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:70 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:72 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:81 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:82 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 +msgid "Location Path" +msgstr "" + +#: stock/templates/stock/location.html:107 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:113 +msgid "Location Owner" +msgstr "" + +#: stock/templates/stock/location.html:117 +msgid "You are not in the list of owners of this location. This stock location cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 +msgid "Stock Locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:8 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: stock/templates/stock/location_delete.html:13 +#, python-format +msgid "This location contains %(n)s child locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:15 +#, python-format +msgid "If this location is deleted, these child locations will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:17 +msgid "If this location is deleted, these child locations will be moved to the top level stock location" +msgstr "" + +#: stock/templates/stock/location_delete.html:25 +#, python-format +msgid "This location contains %(n)s stock items" +msgstr "" + +#: stock/templates/stock/location_delete.html:27 +#, python-format +msgid "If this location is deleted, these stock items will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:29 +msgid "If this location is deleted, these stock items will be moved to the top level stock location" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/templates/stock/stock_uninstall.html:8 +msgid "The following stock items will be uninstalled" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:8 +#, python-format +msgid "This stock item is current an instance of %(part)s" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tracking_delete.html:6 +msgid "Are you sure you want to delete this stock tracking entry?" +msgstr "" + +#: stock/views.py:152 templates/js/translated/stock.js:138 +msgid "Edit Stock Location" +msgstr "" + +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 +msgid "Owner is required (ownership control is enabled)" +msgstr "" + +#: stock/views.py:274 +msgid "Stock Location QR code" +msgstr "" + +#: stock/views.py:293 +msgid "Return to Stock" +msgstr "" + +#: stock/views.py:302 +msgid "Specify a valid location" +msgstr "" + +#: stock/views.py:313 +msgid "Stock item returned from customer" +msgstr "" + +#: stock/views.py:324 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:341 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:342 +msgid "Check the confirmation box" +msgstr "" + +#: stock/views.py:357 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/views.py:382 +msgid "Uninstall Stock Items" +msgstr "" + +#: stock/views.py:479 templates/js/translated/stock.js:1046 +msgid "Confirm stock adjustment" +msgstr "" + +#: stock/views.py:490 +msgid "Uninstalled stock items" +msgstr "" + +#: stock/views.py:512 templates/js/translated/stock.js:343 +msgid "Edit Stock Item" +msgstr "" + +#: stock/views.py:672 +msgid "Create new Stock Location" +msgstr "" + +#: stock/views.py:773 +msgid "Create new Stock Item" +msgstr "" + +#: stock/views.py:915 templates/js/translated/stock.js:323 +msgid "Duplicate Stock Item" +msgstr "" + +#: stock/views.py:997 +msgid "Quantity cannot be negative" +msgstr "" + +#: stock/views.py:1097 +msgid "Delete Stock Location" +msgstr "" + +#: stock/views.py:1110 +msgid "Delete Stock Item" +msgstr "" + +#: stock/views.py:1121 +msgid "Delete Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1128 +msgid "Edit Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1137 +msgid "Add Stock Tracking Entry" +msgstr "" + +#: templates/403.html:5 templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/404.html:5 templates/404.html:11 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:14 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:5 templates/500.html:11 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:14 +msgid "The InvenTree server raised an internal error" +msgstr "" + +#: templates/500.html:15 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:10 templates/503.html:35 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:41 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:88 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:98 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:108 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:119 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:145 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:168 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:191 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:202 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:224 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:235 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:255 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:266 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:286 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:297 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:8 +msgid "Currency Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:19 +msgid "Base Currency" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:24 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:38 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:44 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:49 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/global.html:9 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:31 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:131 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part.html:62 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:10 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:16 +msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:34 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:39 +#: templates/js/translated/plugin.js:15 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:129 +#: users/models.py:39 +msgid "Admin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin_settings.html:28 +msgid "Author" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin_settings.html:43 +msgid "Version" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 +msgid "Inactive plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:122 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:131 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:10 +#, python-format +msgid "Plugin details for %(name)s" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:17 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:48 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:62 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:71 +msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:77 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:83 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:86 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:88 +msgid "This plugin was found in a local InvenTree path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:94 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:104 +#: templates/about.html:47 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +#: templates/about.html:40 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:112 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +msgid "Sign Status" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:122 +msgid "Sign Key" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reports.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:37 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:42 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:116 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:118 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:120 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:209 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:310 +msgid "No part parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +#: templates/InvenTree/settings/user.html:12 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +msgid "Label Printing" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:26 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:29 +msgid "Server Configuration" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Currencies" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:41 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:18 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 +msgid "Username" +msgstr "" + +#: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 +msgid "Last Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:54 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:75 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:77 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:79 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:85 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:149 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:104 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:109 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:117 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:122 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user.html:162 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "You currently do not have any factors set up." +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:220 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:226 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:227 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:236 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:237 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:241 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:242 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:243 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:252 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:254 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:266 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:27 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:37 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:48 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:56 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:65 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:83 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:90 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:103 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:104 +#, python-format +msgid "Native language translation of the InvenTree web application is
        community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + +#: templates/about.html:10 +msgid "InvenTree Version Information" +msgstr "" + +#: templates/about.html:11 templates/about.html:105 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/about.html:20 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:25 +msgid "Development Version" +msgstr "" + +#: templates/about.html:28 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:30 +msgid "Update Available" +msgstr "" + +#: templates/about.html:53 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:58 +msgid "API Version" +msgstr "" + +#: templates/about.html:63 +msgid "Python Version" +msgstr "" + +#: templates/about.html:68 +msgid "Django Version" +msgstr "" + +#: templates/about.html:73 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:78 +msgid "Credits" +msgstr "" + +#: templates/about.html:83 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:88 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:95 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:95 +msgid "copy version information" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:10 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:16 +#, python-format +msgid "Please confirm that %(email)s is an email address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:27 +#, python-format +msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:16 +#: templates/account/login.html:39 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:21 +#, python-format +msgid "" +"Please sign in with one\n" +"of your existing third party accounts or sign up\n" +"for a account and sign in below:" +msgstr "" + +#: templates/account/login.html:25 +#, python-format +msgid "" +"If you have not created an account yet, then please\n" +"sign up first." +msgstr "" + +#: templates/account/login.html:42 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:47 +msgid "InvenTree demo instance" +msgstr "" + +#: templates/account/login.html:47 +msgid "Click here for login details" +msgstr "" + +#: templates/account/login.html:55 +msgid "or use SSO" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:36 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:11 templates/account/signup.html:22 +msgid "Sign Up" +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:27 +msgid "Or use a SSO-provider for signup" +msgstr "" + +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "Back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "" + +#: templates/base.html:99 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:102 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:102 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +#: templates/js/translated/bom.js:1350 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:18 +#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 +#: templates/js/translated/table_filters.js:178 +msgid "Available" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:31 +msgid "You are receiving this email because you are subscribed to notifications for this part " +msgstr "" + +#: templates/email/email.html:35 +msgid "InvenTree version" +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:19 +msgid "Minimum Quantity" +msgstr "" + +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 +msgid "No Response" +msgstr "" + +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 +msgid "No response from the InvenTree server" +msgstr "" + +#: templates/js/translated/api.js:197 +msgid "Error 400: Bad request" +msgstr "" + +#: templates/js/translated/api.js:198 +msgid "API request returned error code 400" +msgstr "" + +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 +msgid "Error 401: Not Authenticated" +msgstr "" + +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 +msgid "Authentication credentials not supplied" +msgstr "" + +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 +msgid "Error 403: Permission Denied" +msgstr "" + +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 +msgid "You do not have the required permissions to access this function" +msgstr "" + +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 +msgid "Error 404: Resource Not Found" +msgstr "" + +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 +msgid "The requested resource could not be located on the server" +msgstr "" + +#: templates/js/translated/api.js:217 +msgid "Error 405: Method Not Allowed" +msgstr "" + +#: templates/js/translated/api.js:218 +msgid "HTTP method not allowed at URL" +msgstr "" + +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 +msgid "Error 408: Timeout" +msgstr "" + +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 +msgid "Connection timeout while requesting data from server" +msgstr "" + +#: templates/js/translated/api.js:226 +msgid "Unhandled Error Code" +msgstr "" + +#: templates/js/translated/api.js:227 +msgid "Error code" +msgstr "" + +#: templates/js/translated/attachment.js:78 +msgid "No attachments found" +msgstr "" + +#: templates/js/translated/attachment.js:100 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:110 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:111 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:167 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:183 +msgid "Edit attachment" +msgstr "" + +#: templates/js/translated/attachment.js:190 +msgid "Delete attachment" +msgstr "" + +#: templates/js/translated/barcode.js:29 +msgid "Scan barcode data here using wedge scanner" +msgstr "" + +#: templates/js/translated/barcode.js:31 +msgid "Enter barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:35 +msgid "Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:53 +msgid "Enter optional notes for stock transfer" +msgstr "" + +#: templates/js/translated/barcode.js:54 +msgid "Enter notes" +msgstr "" + +#: templates/js/translated/barcode.js:92 +msgid "Server error" +msgstr "" + +#: templates/js/translated/barcode.js:113 +msgid "Unknown response from server" +msgstr "" + +#: templates/js/translated/barcode.js:140 +#: templates/js/translated/modals.js:1046 +msgid "Invalid server response" +msgstr "" + +#: templates/js/translated/barcode.js:233 +msgid "Scan barcode data below" +msgstr "" + +#: templates/js/translated/barcode.js:280 templates/navbar.html:101 +msgid "Scan Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:291 +msgid "No URL in response" +msgstr "" + +#: templates/js/translated/barcode.js:309 +msgid "Link Barcode to Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:332 +msgid "This will remove the association between this stock item and the barcode" +msgstr "" + +#: templates/js/translated/barcode.js:338 +msgid "Unlink" +msgstr "" + +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 +msgid "Remove stock item" +msgstr "" + +#: templates/js/translated/barcode.js:445 +msgid "Check Stock Items into Location" +msgstr "" + +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 +msgid "Check In" +msgstr "" + +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" + +#: templates/js/translated/barcode.js:515 +msgid "Stock Item already scanned" +msgstr "" + +#: templates/js/translated/barcode.js:519 +msgid "Stock Item already in this location" +msgstr "" + +#: templates/js/translated/barcode.js:526 +msgid "Added stock item" +msgstr "" + +#: templates/js/translated/barcode.js:533 +msgid "Barcode does not match Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:576 +msgid "Check Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:639 +msgid "Barcode does not match a valid location" +msgstr "" + +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:430 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:294 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:295 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:300 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:301 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:307 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:308 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:313 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:314 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:319 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:320 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:325 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:326 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:509 +msgid "Remove substitute part" +msgstr "" + +#: templates/js/translated/bom.js:565 +msgid "Select and add a new substitute part using the input below" +msgstr "" + +#: templates/js/translated/bom.js:576 +msgid "Are you sure you wish to remove this substitute part link?" +msgstr "" + +#: templates/js/translated/bom.js:582 +msgid "Remove Substitute Part" +msgstr "" + +#: templates/js/translated/bom.js:621 +msgid "Add Substitute" +msgstr "" + +#: templates/js/translated/bom.js:622 +msgid "Edit BOM Item Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:739 +msgid "Substitutes Available" +msgstr "" + +#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1407 +msgid "Variant stock allowed" +msgstr "" + +#: templates/js/translated/bom.js:748 +msgid "Open subassembly" +msgstr "" + +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 +msgid "Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:843 +msgid "Purchase Price Range" +msgstr "" + +#: templates/js/translated/bom.js:850 +msgid "Purchase Price Average" +msgstr "" + +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 +msgid "View BOM" +msgstr "" + +#: templates/js/translated/bom.js:961 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:963 +msgid "This line has been validated" +msgstr "" + +#: templates/js/translated/bom.js:965 +msgid "Edit substitute parts" +msgstr "" + +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 +msgid "No BOM items found" +msgstr "" + +#: templates/js/translated/bom.js:1131 +msgid "Are you sure you want to delete this BOM item?" +msgstr "" + +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 +msgid "Required Part" +msgstr "" + +#: templates/js/translated/bom.js:1355 +msgid "Inherited from parent BOM" +msgstr "" + +#: templates/js/translated/build.js:86 +msgid "Edit Build Order" +msgstr "" + +#: templates/js/translated/build.js:120 +msgid "Create Build Order" +msgstr "" + +#: templates/js/translated/build.js:141 +msgid "Build order is ready to be completed" +msgstr "" + +#: templates/js/translated/build.js:146 +msgid "Build Order is incomplete" +msgstr "" + +#: templates/js/translated/build.js:174 +msgid "Complete Build Order" +msgstr "" + +#: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 +#: templates/js/translated/stock.js:180 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:182 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:227 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:236 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:243 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:274 +msgid "Allocate stock items to this build output" +msgstr "" + +#: templates/js/translated/build.js:285 +msgid "Unallocate stock from build output" +msgstr "" + +#: templates/js/translated/build.js:294 +msgid "Complete build output" +msgstr "" + +#: templates/js/translated/build.js:302 +msgid "Delete build output" +msgstr "" + +#: templates/js/translated/build.js:325 +msgid "Are you sure you wish to unallocate stock items from this build?" +msgstr "" + +#: templates/js/translated/build.js:343 +msgid "Unallocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 +msgid "Select Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:362 templates/js/translated/build.js:510 +msgid "At least one build output must be selected" +msgstr "" + +#: templates/js/translated/build.js:416 templates/js/translated/build.js:564 +msgid "Output" +msgstr "" + +#: templates/js/translated/build.js:432 +msgid "Complete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:577 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:666 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/translated/build.js:704 +msgid "Location not specified" +msgstr "" + +#: templates/js/translated/build.js:886 +msgid "No active build outputs found" +msgstr "" + +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 +#: templates/js/translated/order.js:2179 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 +#: templates/js/translated/order.js:2180 +msgid "Delete stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1368 +msgid "Edit Allocation" +msgstr "" + +#: templates/js/translated/build.js:1378 +msgid "Remove Allocation" +msgstr "" + +#: templates/js/translated/build.js:1403 +msgid "Substitute parts available" +msgstr "" + +#: templates/js/translated/build.js:1420 +msgid "Quantity Per" +msgstr "" + +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 +msgid "Allocated" +msgstr "" + +#: templates/js/translated/build.js:1459 +msgid "loading" +msgstr "" + +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 +msgid "Build stock" +msgstr "" + +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 +msgid "Order stock" +msgstr "" + +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 +msgid "Allocate stock" +msgstr "" + +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 +msgid "Select Parts" +msgstr "" + +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 +msgid "You must select at least one part to allocate" +msgstr "" + +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 +msgid "Specify stock allocation quantity" +msgstr "" + +#: templates/js/translated/build.js:1673 +msgid "All Parts Allocated" +msgstr "" + +#: templates/js/translated/build.js:1674 +msgid "All selected parts have been fully allocated" +msgstr "" + +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 +msgid "Select source location (leave blank to take from all locations)" +msgstr "" + +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 +msgid "Confirm stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1718 +msgid "Allocate Stock Items to Build Order" +msgstr "" + +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 +msgid "No matching stock locations" +msgstr "" + +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 +msgid "No matching stock items" +msgstr "" + +#: templates/js/translated/build.js:1898 +msgid "Automatic Stock Allocation" +msgstr "" + +#: templates/js/translated/build.js:1899 +msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" +msgstr "" + +#: templates/js/translated/build.js:1901 +msgid "If a location is specifed, stock will only be allocated from that location" +msgstr "" + +#: templates/js/translated/build.js:1902 +msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" +msgstr "" + +#: templates/js/translated/build.js:1903 +msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" +msgstr "" + +#: templates/js/translated/build.js:1924 +msgid "Allocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:1962 +msgid "No builds matching query" +msgstr "" + +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1296 +#: templates/js/translated/part.js:1723 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 +msgid "Select" +msgstr "" + +#: templates/js/translated/build.js:1999 +msgid "Build order is overdue" +msgstr "" + +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2523 +msgid "No user information" +msgstr "" + +#: templates/js/translated/build.js:2075 +msgid "No information" +msgstr "" + +#: templates/js/translated/build.js:2132 +msgid "No parts allocated for" +msgstr "" + +#: templates/js/translated/company.js:65 +msgid "Add Manufacturer" +msgstr "" + +#: templates/js/translated/company.js:78 templates/js/translated/company.js:177 +msgid "Add Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:99 +msgid "Edit Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:108 +msgid "Delete Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:165 templates/js/translated/order.js:248 +msgid "Add Supplier" +msgstr "" + +#: templates/js/translated/company.js:193 +msgid "Add Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:208 +msgid "Edit Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:218 +msgid "Delete Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:286 +msgid "Add new Company" +msgstr "" + +#: templates/js/translated/company.js:363 +msgid "Parts Supplied" +msgstr "" + +#: templates/js/translated/company.js:372 +msgid "Parts Manufactured" +msgstr "" + +#: templates/js/translated/company.js:387 +msgid "No company information found" +msgstr "" + +#: templates/js/translated/company.js:406 +msgid "The following manufacturer parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:423 +msgid "Delete Manufacturer Parts" +msgstr "" + +#: templates/js/translated/company.js:480 +msgid "No manufacturer parts found" +msgstr "" + +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 +msgid "Template part" +msgstr "" + +#: templates/js/translated/company.js:504 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 +msgid "Assembled part" +msgstr "" + +#: templates/js/translated/company.js:631 templates/js/translated/part.js:739 +msgid "No parameters found" +msgstr "" + +#: templates/js/translated/company.js:668 templates/js/translated/part.js:781 +msgid "Edit parameter" +msgstr "" + +#: templates/js/translated/company.js:669 templates/js/translated/part.js:782 +msgid "Delete parameter" +msgstr "" + +#: templates/js/translated/company.js:688 templates/js/translated/part.js:799 +msgid "Edit Parameter" +msgstr "" + +#: templates/js/translated/company.js:699 templates/js/translated/part.js:811 +msgid "Delete Parameter" +msgstr "" + +#: templates/js/translated/company.js:737 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:441 +msgid "true" +msgstr "" + +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:442 +msgid "false" +msgstr "" + +#: templates/js/translated/filters.js:204 +msgid "Select filter" +msgstr "" + +#: templates/js/translated/filters.js:288 +msgid "Download data" +msgstr "" + +#: templates/js/translated/filters.js:291 +msgid "Reload data" +msgstr "" + +#: templates/js/translated/filters.js:295 +msgid "Add new filter" +msgstr "" + +#: templates/js/translated/filters.js:298 +msgid "Clear all filters" +msgstr "" + +#: templates/js/translated/filters.js:350 +msgid "Create filter" +msgstr "" + +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 +msgid "Action Prohibited" +msgstr "" + +#: templates/js/translated/forms.js:353 +msgid "Create operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:368 +msgid "Update operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:382 +msgid "Delete operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:396 +msgid "View operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:627 +msgid "Keep this form open" +msgstr "" + +#: templates/js/translated/forms.js:702 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1194 templates/modals.html:19 +#: templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/js/translated/forms.js:1623 +msgid "No results found" +msgstr "" + +#: templates/js/translated/forms.js:1833 templates/search.html:29 +msgid "Searching" +msgstr "" + +#: templates/js/translated/forms.js:2082 +msgid "Clear input" +msgstr "" + +#: templates/js/translated/forms.js:2547 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2547 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2559 +msgid "Select Columns" +msgstr "" + +#: templates/js/translated/helpers.js:20 +msgid "YES" +msgstr "" + +#: templates/js/translated/helpers.js:22 +msgid "NO" +msgstr "" + +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 +msgid "Select Stock Items" +msgstr "" + +#: templates/js/translated/label.js:61 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:80 +msgid "No labels found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/label.js:115 +msgid "Select Stock Locations" +msgstr "" + +#: templates/js/translated/label.js:116 +msgid "Stock location(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:134 +msgid "No labels found which match selected stock location(s)" +msgstr "" + +#: templates/js/translated/label.js:173 +msgid "Part(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:192 +msgid "No labels found which match the selected part(s)" +msgstr "" + +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 +msgid "stock items selected" +msgstr "" + +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 +msgid "Select Label Template" +msgstr "" + +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 +msgid "Cancel" +msgstr "" + +#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/js/translated/modals.js:118 +msgid "Form Title" +msgstr "" + +#: templates/js/translated/modals.js:392 +msgid "Waiting for server..." +msgstr "" + +#: templates/js/translated/modals.js:551 +msgid "Show Error Information" +msgstr "" + +#: templates/js/translated/modals.js:609 +msgid "Accept" +msgstr "" + +#: templates/js/translated/modals.js:666 +msgid "Loading Data" +msgstr "" + +#: templates/js/translated/modals.js:937 +msgid "Invalid response from server" +msgstr "" + +#: templates/js/translated/modals.js:937 +msgid "Form data missing from server response" +msgstr "" + +#: templates/js/translated/modals.js:949 +msgid "Error posting form data" +msgstr "" + +#: templates/js/translated/modals.js:1046 +msgid "JSON response missing form data" +msgstr "" + +#: templates/js/translated/modals.js:1061 +msgid "Error 400: Bad Request" +msgstr "" + +#: templates/js/translated/modals.js:1062 +msgid "Server returned error code 400" +msgstr "" + +#: templates/js/translated/modals.js:1085 +msgid "Error requesting form data" +msgstr "" + +#: templates/js/translated/model_renderers.js:60 +msgid "Company ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:123 +msgid "Stock ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:149 +msgid "Location ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:166 +msgid "Build ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 +msgid "Order ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:306 +msgid "Shipment ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:326 +msgid "Category ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:369 +msgid "Manufacturer Part ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:398 +msgid "Supplier Part ID" +msgstr "" + +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + +#: templates/js/translated/order.js:75 +msgid "No stock items have been allocated to this shipment" +msgstr "" + +#: templates/js/translated/order.js:80 +msgid "The following stock items will be shipped" +msgstr "" + +#: templates/js/translated/order.js:120 +msgid "Complete Shipment" +msgstr "" + +#: templates/js/translated/order.js:126 +msgid "Confirm Shipment" +msgstr "" + +#: templates/js/translated/order.js:181 +msgid "Create New Shipment" +msgstr "" + +#: templates/js/translated/order.js:206 +msgid "Add Customer" +msgstr "" + +#: templates/js/translated/order.js:231 +msgid "Create Sales Order" +msgstr "" + +#: templates/js/translated/order.js:426 +msgid "Export Order" +msgstr "" + +#: templates/js/translated/order.js:520 +msgid "Select Line Items" +msgstr "" + +#: templates/js/translated/order.js:521 +msgid "At least one line item must be selected" +msgstr "" + +#: templates/js/translated/order.js:541 templates/js/translated/order.js:640 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/order.js:547 templates/js/translated/order.js:651 +msgid "Add serial numbers" +msgstr "" + +#: templates/js/translated/order.js:559 +msgid "Quantity to receive" +msgstr "" + +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 +msgid "Stock Status" +msgstr "" + +#: templates/js/translated/order.js:712 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/order.js:713 +msgid "Ordered" +msgstr "" + +#: templates/js/translated/order.js:715 +msgid "Quantity to Receive" +msgstr "" + +#: templates/js/translated/order.js:734 +msgid "Confirm receipt of items" +msgstr "" + +#: templates/js/translated/order.js:735 +msgid "Receive Purchase Order Items" +msgstr "" + +#: templates/js/translated/order.js:925 templates/js/translated/part.js:852 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426 +msgid "Order is overdue" +msgstr "" + +#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2577 +msgid "Duplicate Line Item" +msgstr "" + +#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2599 +msgid "Edit Line Item" +msgstr "" + +#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2610 +msgid "Delete Line Item" +msgstr "" + +#: templates/js/translated/order.js:1160 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2335 +msgid "Total" +msgstr "" + +#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 +#: templates/js/translated/part.js:1940 templates/js/translated/part.js:2284 +msgid "Unit Price" +msgstr "" + +#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2376 +msgid "Total Price" +msgstr "" + +#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 +#: templates/js/translated/part.js:961 +msgid "This line item is overdue" +msgstr "" + +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1007 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2532 +msgid "Duplicate line item" +msgstr "" + +#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2533 +msgid "Edit line item" +msgstr "" + +#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2537 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:1402 +msgid "No sales orders found" +msgstr "" + +#: templates/js/translated/order.js:1440 +msgid "Invalid Customer" +msgstr "" + +#: templates/js/translated/order.js:1527 +msgid "Edit shipment" +msgstr "" + +#: templates/js/translated/order.js:1530 +msgid "Complete shipment" +msgstr "" + +#: templates/js/translated/order.js:1535 +msgid "Delete shipment" +msgstr "" + +#: templates/js/translated/order.js:1555 +msgid "Edit Shipment" +msgstr "" + +#: templates/js/translated/order.js:1572 +msgid "Delete Shipment" +msgstr "" + +#: templates/js/translated/order.js:1606 +msgid "No matching shipments found" +msgstr "" + +#: templates/js/translated/order.js:1616 +msgid "Shipment Reference" +msgstr "" + +#: templates/js/translated/order.js:1640 +msgid "Not shipped" +msgstr "" + +#: templates/js/translated/order.js:1646 +msgid "Tracking" +msgstr "" + +#: templates/js/translated/order.js:1806 +msgid "Allocate Stock Items to Sales Order" +msgstr "" + +#: templates/js/translated/order.js:2014 +msgid "No sales order allocations found" +msgstr "" + +#: templates/js/translated/order.js:2095 +msgid "Edit Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:2112 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:2113 +msgid "Delete Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 +#: templates/js/translated/stock.js:1544 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2254 +msgid "Stock location not specified" +msgstr "" + +#: templates/js/translated/order.js:2516 +msgid "Allocate serial numbers" +msgstr "" + +#: templates/js/translated/order.js:2522 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/order.js:2529 templates/js/translated/order.js:2719 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/order.js:2541 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/order.js:2544 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/order.js:2625 +msgid "Allocate Serial Numbers" +msgstr "" + +#: templates/js/translated/order.js:2727 +msgid "Update Unit Price" +msgstr "" + +#: templates/js/translated/order.js:2741 +msgid "No matching line items" +msgstr "" + +#: templates/js/translated/part.js:55 +msgid "Part Attributes" +msgstr "" + +#: templates/js/translated/part.js:59 +msgid "Part Creation Options" +msgstr "" + +#: templates/js/translated/part.js:63 +msgid "Part Duplication Options" +msgstr "" + +#: templates/js/translated/part.js:67 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:81 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:166 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:174 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:181 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:199 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:208 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:209 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:265 +msgid "Copy Image" +msgstr "" + +#: templates/js/translated/part.js:266 +msgid "Copy image from original part" +msgstr "" + +#: templates/js/translated/part.js:274 +msgid "Copy bill of materials from original part" +msgstr "" + +#: templates/js/translated/part.js:281 +msgid "Copy Parameters" +msgstr "" + +#: templates/js/translated/part.js:282 +msgid "Copy parameter data from original part" +msgstr "" + +#: templates/js/translated/part.js:295 +msgid "Parent part category" +msgstr "" + +#: templates/js/translated/part.js:340 +msgid "Edit Part" +msgstr "" + +#: templates/js/translated/part.js:342 +msgid "Part edited" +msgstr "" + +#: templates/js/translated/part.js:353 +msgid "Create Part Variant" +msgstr "" + +#: templates/js/translated/part.js:423 +msgid "You are subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:425 +msgid "You have subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:430 +msgid "Subscribe to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:432 +msgid "You have unsubscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:449 +msgid "Validating the BOM will mark each line item as valid" +msgstr "" + +#: templates/js/translated/part.js:459 +msgid "Validate Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:462 +msgid "Validated Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:487 +msgid "Copy Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1379 +#: templates/js/translated/table_filters.js:452 +msgid "Low stock" +msgstr "" + +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1391 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:687 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1077 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1101 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1166 templates/js/translated/part.js:1462 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1205 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1356 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1486 templates/js/translated/part.js:1658 +#: templates/js/translated/stock.js:2242 +msgid "Display as list" +msgstr "" + +#: templates/js/translated/part.js:1502 +msgid "Display as grid" +msgstr "" + +#: templates/js/translated/part.js:1677 templates/js/translated/stock.js:2261 +msgid "Display as tree" +msgstr "" + +#: templates/js/translated/part.js:1741 +msgid "Subscribed category" +msgstr "" + +#: templates/js/translated/part.js:1755 templates/js/translated/stock.js:2305 +msgid "Path" +msgstr "" + +#: templates/js/translated/part.js:1799 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/translated/part.js:1850 templates/js/translated/stock.js:1242 +msgid "Edit test result" +msgstr "" + +#: templates/js/translated/part.js:1851 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 +msgid "Delete test result" +msgstr "" + +#: templates/js/translated/part.js:1857 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/translated/part.js:1879 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1893 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1918 +#, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1973 +#, python-brace-format +msgid "Edit ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:1974 +#, python-brace-format +msgid "Delete ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:2079 +msgid "Current Stock" +msgstr "" + +#: templates/js/translated/part.js:2112 +msgid "No scheduling information available for this part" +msgstr "" + +#: templates/js/translated/part.js:2138 +msgid "Scheduled Stock Quantities" +msgstr "" + +#: templates/js/translated/part.js:2208 +msgid "Single Price" +msgstr "" + +#: templates/js/translated/part.js:2227 +msgid "Single Price Difference" +msgstr "" + +#: templates/js/translated/plugin.js:22 +msgid "The Plugin was installed" +msgstr "" + +#: templates/js/translated/report.js:67 +msgid "items selected" +msgstr "" + +#: templates/js/translated/report.js:75 +msgid "Select Report Template" +msgstr "" + +#: templates/js/translated/report.js:90 +msgid "Select Test Report Template" +msgstr "" + +#: templates/js/translated/report.js:119 +msgid "Stock item(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:136 templates/js/translated/report.js:189 +#: templates/js/translated/report.js:243 templates/js/translated/report.js:297 +#: templates/js/translated/report.js:351 +msgid "No Reports Found" +msgstr "" + +#: templates/js/translated/report.js:137 +msgid "No report templates found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/report.js:172 +msgid "Select Builds" +msgstr "" + +#: templates/js/translated/report.js:173 +msgid "Build(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:190 +msgid "No report templates found which match selected build(s)" +msgstr "" + +#: templates/js/translated/report.js:226 +msgid "Part(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:244 +msgid "No report templates found which match selected part(s)" +msgstr "" + +#: templates/js/translated/report.js:279 +msgid "Select Purchase Orders" +msgstr "" + +#: templates/js/translated/report.js:280 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/report.js:298 templates/js/translated/report.js:352 +msgid "No report templates found which match selected orders" +msgstr "" + +#: templates/js/translated/report.js:333 +msgid "Select Sales Orders" +msgstr "" + +#: templates/js/translated/report.js:334 +msgid "Sales Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + +#: templates/js/translated/stock.js:72 +msgid "Serialize Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:100 +msgid "Confirm Stock Serialization" +msgstr "" + +#: templates/js/translated/stock.js:109 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:153 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:193 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:232 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:238 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:303 +msgid "Stock item duplicated" +msgstr "" + +#: templates/js/translated/stock.js:393 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:406 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:431 +msgid "Find Serial Number" +msgstr "" + +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 +msgid "Enter serial number" +msgstr "" + +#: templates/js/translated/stock.js:452 +msgid "Enter a serial number" +msgstr "" + +#: templates/js/translated/stock.js:472 +msgid "No matching serial number" +msgstr "" + +#: templates/js/translated/stock.js:481 +msgid "More than one matching result found" +msgstr "" + +#: templates/js/translated/stock.js:604 +msgid "Confirm stock assignment" +msgstr "" + +#: templates/js/translated/stock.js:605 +msgid "Assign Stock to Customer" +msgstr "" + +#: templates/js/translated/stock.js:682 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:683 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:685 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:686 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:772 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:773 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:868 +msgid "Transfer Stock" +msgstr "" + +#: templates/js/translated/stock.js:869 +msgid "Move" +msgstr "" + +#: templates/js/translated/stock.js:875 +msgid "Count Stock" +msgstr "" + +#: templates/js/translated/stock.js:876 +msgid "Count" +msgstr "" + +#: templates/js/translated/stock.js:880 +msgid "Remove Stock" +msgstr "" + +#: templates/js/translated/stock.js:881 +msgid "Take" +msgstr "" + +#: templates/js/translated/stock.js:885 +msgid "Add Stock" +msgstr "" + +#: templates/js/translated/stock.js:886 users/models.py:214 +msgid "Add" +msgstr "" + +#: templates/js/translated/stock.js:890 +msgid "Delete Stock" +msgstr "" + +#: templates/js/translated/stock.js:983 +msgid "Quantity cannot be adjusted for serialized stock" +msgstr "" + +#: templates/js/translated/stock.js:983 +msgid "Specify stock quantity" +msgstr "" + +#: templates/js/translated/stock.js:1023 +msgid "You must select at least one available stock item" +msgstr "" + +#: templates/js/translated/stock.js:1181 +msgid "PASS" +msgstr "" + +#: templates/js/translated/stock.js:1183 +msgid "FAIL" +msgstr "" + +#: templates/js/translated/stock.js:1188 +msgid "NO RESULT" +msgstr "" + +#: templates/js/translated/stock.js:1235 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1238 +msgid "Add test result" +msgstr "" + +#: templates/js/translated/stock.js:1264 +msgid "No test results found" +msgstr "" + +#: templates/js/translated/stock.js:1320 +msgid "Test Date" +msgstr "" + +#: templates/js/translated/stock.js:1485 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1507 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1536 +msgid "In production" +msgstr "" + +#: templates/js/translated/stock.js:1540 +msgid "Installed in Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:1548 +msgid "Assigned to Sales Order" +msgstr "" + +#: templates/js/translated/stock.js:1554 +msgid "No stock location set" +msgstr "" + +#: templates/js/translated/stock.js:1712 +msgid "Stock item is in production" +msgstr "" + +#: templates/js/translated/stock.js:1717 +msgid "Stock item assigned to sales order" +msgstr "" + +#: templates/js/translated/stock.js:1720 +msgid "Stock item assigned to customer" +msgstr "" + +#: templates/js/translated/stock.js:1724 +msgid "Stock item has expired" +msgstr "" + +#: templates/js/translated/stock.js:1726 +msgid "Stock item will expire soon" +msgstr "" + +#: templates/js/translated/stock.js:1732 +msgid "Serialized stock item has been allocated" +msgstr "" + +#: templates/js/translated/stock.js:1734 +msgid "Stock item has been fully allocated" +msgstr "" + +#: templates/js/translated/stock.js:1736 +msgid "Stock item has been partially allocated" +msgstr "" + +#: templates/js/translated/stock.js:1741 +msgid "Stock item has been installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:1748 +msgid "Stock item has been rejected" +msgstr "" + +#: templates/js/translated/stock.js:1750 +msgid "Stock item is lost" +msgstr "" + +#: templates/js/translated/stock.js:1752 +msgid "Stock item is destroyed" +msgstr "" + +#: templates/js/translated/stock.js:1756 +#: templates/js/translated/table_filters.js:188 +msgid "Depleted" +msgstr "" + +#: templates/js/translated/stock.js:1807 +msgid "Stocktake" +msgstr "" + +#: templates/js/translated/stock.js:1889 +msgid "Supplier part not specified" +msgstr "" + +#: templates/js/translated/stock.js:1927 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:2099 +msgid "Set Stock Status" +msgstr "" + +#: templates/js/translated/stock.js:2113 +msgid "Select Status Code" +msgstr "" + +#: templates/js/translated/stock.js:2114 +msgid "Status code must be selected" +msgstr "" + +#: templates/js/translated/stock.js:2369 +msgid "Details" +msgstr "" + +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2426 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2445 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2463 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2486 +msgid "Added" +msgstr "" + +#: templates/js/translated/stock.js:2494 +msgid "Removed" +msgstr "" + +#: templates/js/translated/stock.js:2570 +msgid "No installed items" +msgstr "" + +#: templates/js/translated/stock.js:2621 +msgid "Uninstall Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2657 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2658 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2660 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2661 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 +msgid "Select part to install" +msgstr "" + +#: templates/js/translated/table_filters.js:56 +msgid "Trackable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:60 +msgid "Assembled Part" +msgstr "" + +#: templates/js/translated/table_filters.js:64 +msgid "Validated" +msgstr "" + +#: templates/js/translated/table_filters.js:72 +msgid "Allow Variant Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:110 +#: templates/js/translated/table_filters.js:183 +msgid "Include sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:111 +msgid "Include locations" +msgstr "" + +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:429 +msgid "Include subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:126 +#: templates/js/translated/table_filters.js:468 +msgid "Subscribed" +msgstr "" + +#: templates/js/translated/table_filters.js:136 +#: templates/js/translated/table_filters.js:218 +msgid "Is Serialized" +msgstr "" + +#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:225 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/translated/table_filters.js:140 +#: templates/js/translated/table_filters.js:226 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:229 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:230 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:147 +#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/table_filters.js:221 +#: templates/js/translated/table_filters.js:222 +msgid "Serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:152 +#: templates/js/translated/table_filters.js:243 +msgid "Batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:401 +msgid "Active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:164 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:169 +msgid "Part is an assembly" +msgstr "" + +#: templates/js/translated/table_filters.js:173 +msgid "Is allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:174 +msgid "Item has been allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:179 +msgid "Stock is available for use" +msgstr "" + +#: templates/js/translated/table_filters.js:184 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:189 +msgid "Show stock items which are depleted" +msgstr "" + +#: templates/js/translated/table_filters.js:194 +msgid "Show items which are in stock" +msgstr "" + +#: templates/js/translated/table_filters.js:198 +msgid "In Production" +msgstr "" + +#: templates/js/translated/table_filters.js:199 +msgid "Show items which are in production" +msgstr "" + +#: templates/js/translated/table_filters.js:203 +msgid "Include Variants" +msgstr "" + +#: templates/js/translated/table_filters.js:204 +msgid "Include stock items for variant parts" +msgstr "" + +#: templates/js/translated/table_filters.js:208 +msgid "Installed" +msgstr "" + +#: templates/js/translated/table_filters.js:209 +msgid "Show stock items which are installed in another item" +msgstr "" + +#: templates/js/translated/table_filters.js:214 +msgid "Show items which have been assigned to a customer" +msgstr "" + +#: templates/js/translated/table_filters.js:234 +#: templates/js/translated/table_filters.js:235 +msgid "Stock status" +msgstr "" + +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 +msgid "Has purchase price" +msgstr "" + +#: templates/js/translated/table_filters.js:253 +msgid "Show stock items which have a purchase price set" +msgstr "" + +#: templates/js/translated/table_filters.js:262 +msgid "Show stock items which have expired" +msgstr "" + +#: templates/js/translated/table_filters.js:268 +msgid "Show stock which is close to expiring" +msgstr "" + +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 +msgid "Build status" +msgstr "" + +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 +msgid "Assigned to me" +msgstr "" + +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 +msgid "Order status" +msgstr "" + +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 +msgid "Outstanding" +msgstr "" + +#: templates/js/translated/table_filters.js:430 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:434 +msgid "Has IPN" +msgstr "" + +#: templates/js/translated/table_filters.js:435 +msgid "Part has internal part number" +msgstr "" + +#: templates/js/translated/table_filters.js:440 +msgid "Show active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:448 +msgid "In stock" +msgstr "" + +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 +msgid "Purchasable" +msgstr "" + +#: templates/js/translated/tables.js:50 +msgid "Export Table Data" +msgstr "" + +#: templates/js/translated/tables.js:54 +msgid "Select File Format" +msgstr "" + +#: templates/js/translated/tables.js:433 +msgid "Loading data" +msgstr "" + +#: templates/js/translated/tables.js:436 +msgid "rows per page" +msgstr "" + +#: templates/js/translated/tables.js:441 +msgid "Showing all rows" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "Showing" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "to" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "of" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "rows" +msgstr "" + +#: templates/js/translated/tables.js:447 templates/navbar.html:94 +#: templates/search.html:8 templates/search_form.html:6 +#: templates/search_form.html:7 +msgid "Search" +msgstr "" + +#: templates/js/translated/tables.js:450 +msgid "No matching results" +msgstr "" + +#: templates/js/translated/tables.js:453 +msgid "Hide/Show pagination" +msgstr "" + +#: templates/js/translated/tables.js:456 +msgid "Refresh" +msgstr "" + +#: templates/js/translated/tables.js:459 +msgid "Toggle" +msgstr "" + +#: templates/js/translated/tables.js:462 +msgid "Columns" +msgstr "" + +#: templates/js/translated/tables.js:465 +msgid "All" +msgstr "" + +#: templates/navbar.html:42 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:54 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:108 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:111 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:132 +msgid "Logout" +msgstr "" + +#: templates/navbar.html:134 +msgid "Login" +msgstr "" + +#: templates/navbar.html:154 +msgid "About InvenTree" +msgstr "" + +#: templates/navbar_demo.html:5 +msgid "InvenTree demo mode" +msgstr "" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:6 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:8 +msgid "Log in again" +msgstr "" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + +#: templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/stock_table.html:17 +msgid "Barcode Actions" +msgstr "" + +#: templates/stock_table.html:33 +msgid "Print test reports" +msgstr "" + +#: templates/stock_table.html:40 +msgid "Stock Options" +msgstr "" + +#: templates/stock_table.html:45 +msgid "Add to selected stock items" +msgstr "" + +#: templates/stock_table.html:46 +msgid "Remove from selected stock items" +msgstr "" + +#: templates/stock_table.html:47 +msgid "Stocktake selected stock items" +msgstr "" + +#: templates/stock_table.html:48 +msgid "Move selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order selected items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete selected items" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete stock" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:64 +msgid "Users" +msgstr "" + +#: users/admin.py:65 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:187 +msgid "The following users are members of multiple groups:" +msgstr "" + +#: users/admin.py:210 +msgid "Personal info" +msgstr "" + +#: users/admin.py:211 +msgid "Permissions" +msgstr "" + +#: users/admin.py:214 +msgid "Important dates" +msgstr "" + +#: users/models.py:201 +msgid "Permission set" +msgstr "" + +#: users/models.py:209 +msgid "Group" +msgstr "" + +#: users/models.py:212 +msgid "View" +msgstr "" + +#: users/models.py:212 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:214 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:216 +msgid "Change" +msgstr "" + +#: users/models.py:216 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:218 +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 2ab7fd9d6e..4c98d9b872 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -135,7 +135,7 @@ msgstr "Datei zum Anhängen auswählen" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Link" @@ -154,8 +154,8 @@ msgstr "Datei-Kommentar" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Ungültige Auswahl" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Name" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Name" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Beschreibung" @@ -241,7 +241,7 @@ msgstr "Beschreibung (optional)" msgid "parent" msgstr "Eltern" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" @@ -655,7 +655,7 @@ msgstr "Bauauftrag" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Bauauftragsreferenz" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Kurze Beschreibung des Baus" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Eltern-Bauauftrag" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Quell-Lagerort" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -806,7 +806,7 @@ msgstr "Fertigstellungsdatum" msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Aufgegeben von" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Verantwortlicher Benutzer" @@ -827,7 +827,7 @@ msgstr "Verantwortlicher Benutzer" msgid "User responsible for this build order" msgstr "Nutzer der für diesen Bauauftrag zuständig ist" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Externer Link" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Bauauftrag" @@ -911,7 +911,7 @@ msgstr "Bauauftrag starten um Teile zuzuweisen" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Quell-Lagerartikel" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Quell-Lagerartikel" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -1042,8 +1042,8 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "Bauauftrag hat unvollständige Aufbauten" msgid "No build outputs have been created for this build order" msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "Stücklisten-Position" @@ -1232,13 +1232,13 @@ 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:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Zieldatum" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "Überfällig" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Fertig" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Auftrag" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Aufgegeben von" @@ -1295,32 +1295,36 @@ msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch unvollständige E msgid "Are you sure you wish to cancel this build?" msgstr "Sind Sie sicher, dass sie diesen Bauauftrag abbrechen möchten?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "Möchten Sie diesen Bauauftrag wirklich löschen?" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Bau-Status" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Ausgangs-Lager" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Ziel-Lager" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Ziel-Lagerort nicht angegeben" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Zugewiesene Teile" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "Zugewiesene Teile" msgid "Batch" msgstr "Losnummer" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Erstellt" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Kein Ziel-Datum gesetzt" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Bauauftrag ist nicht vollständig" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "Unter-Bauaufträge" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Bestand Bauauftrag zuweisen" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "Bestandszuordnung aufheben" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Bestandszuordnung aufheben" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "Lagerartikel automatisch zuweisen" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "Automatisch zuweisen" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "Lagerartikel manuell dem Bauauftrag zuweisen" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Bestand zuweisen" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Benötigte Teile bestellen" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Teile bestellen" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Nicht verfolgter Bestand wurde Bauauftrag vollständig zugewiesen" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "Nicht verfolgter Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Ausgewählte Positionen zuweisen" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "Unfertige Endprodukte" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "Neues Endprodukt anlegen" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "Neues Endprodukt" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "Endproduktaktionen" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "Ausgewählte Endprodukt fertigstellen" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "Endprodukte fertigstellen" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "Ausgewählte Endprodukte löschen" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "Endprodukte löschen" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Druck Aktionen" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "Label drucken" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "Fertiggestellte Endprodukte" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Anhänge" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Bauauftrags-Notizen" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Anmerkungen bearbeiten" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Zuordnung abgeschlossen" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "Neuer Bauauftrag" @@ -1703,7 +1695,7 @@ msgstr "Kategorie-Parametervorlage kopieren" msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "Vorlage" msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Baugruppe" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Komponente" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "Verkäuflich" @@ -1752,7 +1744,7 @@ msgstr "Artikel sind grundsätzlich verkaufbar" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Nachverfolgbar" @@ -2024,11 +2016,11 @@ msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." #: common/models.py:1051 msgid "Check plugins on startup" -msgstr "" +msgstr "Plugins beim Start prüfen" #: common/models.py:1052 msgid "Check that all plugins are installed on startup - enable in container enviroments" -msgstr "" +msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" #: common/models.py:1059 msgid "Enable URL integration" @@ -2220,19 +2212,19 @@ msgstr "Zeige überfällige SOs auf der Startseite" #: common/models.py:1244 msgid "Enable email notifications" -msgstr "" +msgstr "E-Mail-Benachrichtigungen aktivieren" #: common/models.py:1245 msgid "Allow sending of emails for event notifications" -msgstr "" +msgstr "Das Senden von Benachrichtigungen als E-Mails erlauben" #: common/models.py:1251 msgid "Enable label printing" -msgstr "" +msgstr "Labeldruck aktivieren" #: common/models.py:1252 msgid "Enable label printing from the web interface" -msgstr "" +msgstr "Labeldruck über die Website aktivieren" #: common/models.py:1258 msgid "Inline label display" @@ -2252,15 +2244,15 @@ msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" #: common/models.py:1272 msgid "Search Parts" -msgstr "" +msgstr "Teile suchen" #: common/models.py:1273 msgid "Display parts in search preview window" -msgstr "" +msgstr "Teile in der Suchvorschau anzeigen" #: common/models.py:1279 msgid "Search Categories" -msgstr "" +msgstr "Kategorien durchsuchen" #: common/models.py:1280 msgid "Display part categories in search preview window" @@ -2268,7 +2260,7 @@ msgstr "" #: common/models.py:1286 msgid "Search Stock" -msgstr "" +msgstr "Bestand durchsuchen" #: common/models.py:1287 msgid "Display stock items in search preview window" @@ -2276,7 +2268,7 @@ msgstr "" #: common/models.py:1293 msgid "Search Locations" -msgstr "" +msgstr "Lagerorte durchsuchen" #: common/models.py:1294 msgid "Display stock locations in search preview window" @@ -2284,7 +2276,7 @@ msgstr "" #: common/models.py:1300 msgid "Search Companies" -msgstr "" +msgstr "Firmen durchsuchen" #: common/models.py:1301 msgid "Display companies in search preview window" @@ -2292,7 +2284,7 @@ msgstr "" #: common/models.py:1307 msgid "Search Purchase Orders" -msgstr "" +msgstr "Bestellungen durchsuchen" #: common/models.py:1308 msgid "Display purchase orders in search preview window" @@ -2300,7 +2292,7 @@ msgstr "" #: common/models.py:1314 msgid "Search Sales Orders" -msgstr "" +msgstr "Aufträge durchsuchen" #: common/models.py:1315 msgid "Display sales orders in search preview window" @@ -2312,7 +2304,7 @@ msgstr "Anzahl Suchergebnisse" #: common/models.py:1322 msgid "Number of results to show in each section of the search preview window" -msgstr "" +msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen" #: common/models.py:1328 msgid "Hide Inactive Parts" @@ -2354,7 +2346,7 @@ msgstr "Datumsformat" msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "Teilzeitplanung" @@ -2368,7 +2360,7 @@ msgstr "Preisstaffelungs Anzahl" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "Preis" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Datei hochgeladen" @@ -2492,7 +2484,7 @@ msgstr "Teile importiert" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Vorheriger Schritt" @@ -2625,7 +2617,7 @@ msgstr "Hersteller auswählen" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "MPN" @@ -2655,7 +2647,7 @@ msgstr "Parametername" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Wert" @@ -2663,10 +2655,10 @@ msgstr "Wert" msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "Einheiten" @@ -2685,7 +2677,7 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Zulieferer" @@ -2696,7 +2688,7 @@ msgstr "Zulieferer auswählen" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "SKU (Lagerbestandseinheit)" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Notiz" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" @@ -2741,7 +2733,7 @@ msgstr "Verpackungen" msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "Vielfache" @@ -2827,129 +2819,129 @@ msgstr "Telefon" msgid "Upload Image" msgstr "Bild hochladen" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Zuliefererteile" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Neues Zuliefererteil anlegen" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "Neues Zuliefererteil" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "Optionen" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Teile bestellen" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Teile löschen" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Teile löschen" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Herstellerteile" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Neues Herstellerteil anlegen" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "Neues Herstellerteil" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Zulieferer-Bestand" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Bestellungen" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Neue Bestellung anlegen" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Neue Bestellung" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "Aufträge" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Neuen Auftrag anlegen" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Neuer Auftrag" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Firmenbemerkungen" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "Zuliefererteil entfernen?" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "Alle ausgewählten Zulieferteile werden gelöscht" @@ -2966,7 +2958,7 @@ msgstr "Hersteller" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Teil bestellen" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "Zulieferer" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "Zuliefererteil entfernen" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "Löschen" @@ -3009,12 +3001,12 @@ msgstr "Löschen" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Parameter" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "Parameter löschen" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "Parameter hinzufügen" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "Zulieferer-Bestand" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Neuen Lagerartikel hinzufügen" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "Zulieferer-Bestellungen" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "Teil bestellen" @@ -3137,10 +3129,10 @@ msgstr "Zuletzt aktualisiert" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Bestand" @@ -3163,7 +3155,7 @@ msgstr "Bepreisung" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "Kunden" msgid "New Customer" msgstr "Neuer Kunde" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Firmen" @@ -3436,7 +3428,7 @@ msgstr "Bestellung" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "Bestellung" @@ -3447,7 +3439,7 @@ msgstr "Zuliefererteil" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "Empfangen" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "Position" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "Sendung" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "Elemente empfangen" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Teile empfangen" @@ -3786,7 +3778,7 @@ msgstr "Zulieferer-Teil auswählen" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "Datei zur Bestellung hochladen" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "Schritt %(step)s von %(count)s" @@ -3882,27 +3874,27 @@ msgstr "Positionen" msgid "Received Stock" msgstr "Empfangene Lagerartikel" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "Bestellungs-Positionen" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "Position hinzufügen" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "Ausgewählte Positionen erhalten" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "Empfangene Teile" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Notizen zur Bestellung" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "Kundenreferenz" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Abgeschlossene Sendungen" @@ -3952,21 +3944,21 @@ msgstr "Warnung" msgid "Cancelling this order means that the order will no longer be editable." msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "Auftrags-Positionen" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "Ausstehende Sendungen" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "Aktionen" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "Neue Sendung" @@ -4065,19 +4057,19 @@ msgstr "Gesamte Stückliste validieren" msgid "This option must be selected" msgstr "Diese Option muss ausgewählt werden" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "Muss größer als 0 sein" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "Muss eine gültige Nummer sein" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "Standort für anfänglichen Bestand angeben" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "Verfügbarer Bestand" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "Bestellt" @@ -4127,13 +4121,13 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Teil-Kategorien" @@ -4144,7 +4138,7 @@ msgstr "Teil-Kategorien" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "Die neuste Seriennummer ist" msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "Name des Teils" @@ -4208,12 +4202,12 @@ msgstr "Schlüsselwörter" msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "Kategorie" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "Teile-Kategorie" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "IPN (Interne Produktnummer)" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "Revision" @@ -4324,313 +4318,313 @@ msgstr "BOM Kontrolldatum" msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2412 +#: part/models.py:2413 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:2429 +#: part/models.py:2430 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:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Benötigt" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:2468 +#: part/models.py:2469 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:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2474 +#: part/models.py:2475 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:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Ungültiges Zeichen im Vorlagename ({c})" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "Einheit des Parameters" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "Wert" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "Teil-ID" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "Name des Teils" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "Teil-ID" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "Stufe" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Optional" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2768 +#: part/models.py:2769 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:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:2774 +#: part/models.py:2775 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:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "Bauteil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "Keine Bauteilspalte angegeben" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" @@ -4662,7 +4656,7 @@ msgstr "Die Stückliste für %(part)s wurde zuletzt von %(checker)s am msgid "The BOM for %(part)s has not been validated." msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "Stücklisten-Aktionen" @@ -4831,150 +4825,150 @@ msgstr "Teil evtl. Duplikat dieser Teile" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Teilbestand" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "Teil Test-Vorlagen" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "Test Vorlage hinzufügen" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "Verkaufsauftragszuweisungen" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "Teil Varianten" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "Neue Variante anlegen" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "neue Variante anlegen" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "Verknüpfte Teile" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "Stückliste" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "Export-Aktionen" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Stückliste exportieren" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "Stücklisten-Bericht drucken" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "Stückliste hochladen" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "Stückliste überprüfen" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "Neue Stücklisten-Position" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "Stücklisten-Position hinzufügen" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "Baugruppen" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "Gefertigte Teile" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "Bauauftragszuweisungen" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "Zulieferer" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "Teil-Hersteller" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "Herstellerteile löschen" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "Ausgewählte Stücklistenpositionen löschen?" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "verknüpftes Teil" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "Teilenotizen bearbeiten" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Stückpreis Einkauf - %(currency)s" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Stückpreis Differenz - %(currency)s" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Stückpreis Zulieferer - %(currency)s" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "Stückpreis - %(currency)s" @@ -5118,8 +5112,8 @@ msgstr "Teil ist virtuell (kein physisches Teil)" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "Inaktiv" @@ -5164,12 +5158,13 @@ msgstr "Benötigt für Aufträge" msgid "Allocated to Sales Orders" msgstr "Zur Bestellung zugeordnet" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "Herstellbar" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "Im Bau" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "Gesamtkosten" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" @@ -5342,7 +5337,7 @@ msgstr "Verkaufspreis anzeigen" msgid "Calculation parameters" msgstr "Berechnungsparameter" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "Zuliefererkosten" @@ -5384,9 +5379,8 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar." msgid "Set category for the following parts" msgstr "Kategorie für Teile setzen" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "Kein Bestand" @@ -5543,7 +5537,7 @@ msgstr "Ihre Umgebung verwendet eine veraltete Git-Version. Dies hindert InvenTr #: plugin/events.py:225 msgid "Label printing failed" -msgstr "" +msgstr "Labeldruck fehlgeschlagen" #: plugin/integration.py:138 msgid "No author found" @@ -5746,7 +5740,7 @@ msgstr "Lagerartikel Test-Bericht" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5961,7 +5955,7 @@ msgstr "Löschen wenn leer" msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "Lagerartikel-Notizen" @@ -6180,48 +6174,48 @@ msgstr "Primärschlüssel Lagerelement" msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "Informationen zur Bestand-Verfolgung" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "neuer Eintrag" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "Kind-Lagerartikel" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "Dieser Lagerartikel hat keine Kinder" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "Testdaten" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "Test-Bericht" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "Testdaten löschen" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "Testdaten hinzufügen" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "Installierte Lagerartikel" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" @@ -6481,7 +6475,7 @@ msgid "Sublocations" msgstr "Unter-Lagerorte" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "Bestand-Lagerorte" @@ -6749,32 +6743,32 @@ msgstr "überfällige Aufträge" #: templates/InvenTree/notifications/history.html:9 msgid "Notification History" -msgstr "" +msgstr "Benachrichtigungsverlauf" #: templates/InvenTree/notifications/history.html:13 #: templates/InvenTree/notifications/history.html:14 msgid "Refresh Notification History" -msgstr "" +msgstr "Benachrichtigungsverlauf aktualisieren" #: templates/InvenTree/notifications/inbox.html:9 msgid "Pending Notifications" -msgstr "" +msgstr "Ausstehende Benachrichtigungen" #: templates/InvenTree/notifications/inbox.html:13 #: templates/InvenTree/notifications/inbox.html:14 msgid "Mark all as read" -msgstr "" +msgstr "Alle als gelesen markieren" #: templates/InvenTree/notifications/inbox.html:16 #: templates/InvenTree/notifications/inbox.html:17 msgid "Refresh Pending Notifications" -msgstr "" +msgstr "Ausstehende Benachrichtigungen aktualisieren" #: templates/InvenTree/notifications/notifications.html:10 #: templates/InvenTree/notifications/sidebar.html:5 #: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 msgid "Notifications" -msgstr "" +msgstr "Benachrichtigungen" #: templates/InvenTree/notifications/notifications.html:51 #: templates/InvenTree/settings/settings.html:314 @@ -6783,7 +6777,7 @@ msgstr "ID" #: templates/InvenTree/notifications/notifications.html:57 msgid "Age" -msgstr "" +msgstr "Alter" #: templates/InvenTree/notifications/notifications.html:88 #: templates/InvenTree/settings/plugin.html:126 @@ -6793,23 +6787,23 @@ msgstr "Meldung" #: templates/InvenTree/notifications/notifications.html:94 #: templates/InvenTree/notifications/notifications.html:150 msgid "Delete Notification" -msgstr "" +msgstr "Benachrichtigung löschen" #: templates/InvenTree/notifications/notifications.html:116 msgid "No unread notifications found" -msgstr "" +msgstr "Keine ungelesenen Benachrichtigungen" #: templates/InvenTree/notifications/notifications.html:140 msgid "No notification history found" -msgstr "" +msgstr "Kein Benachrichtigungsverlauf" #: templates/InvenTree/notifications/sidebar.html:8 msgid "Inbox" -msgstr "" +msgstr "Posteingang" #: templates/InvenTree/notifications/sidebar.html:10 msgid "History" -msgstr "" +msgstr "Verlauf" #: templates/InvenTree/search.html:8 msgid "Search Results" @@ -7120,7 +7114,8 @@ msgid "Change Password" msgstr "Passwort ändern" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "Bearbeiten" @@ -7344,7 +7339,7 @@ msgstr "Labeleinstellungen" #: templates/InvenTree/settings/user_notifications.html:8 msgid "Notification Settings" -msgstr "" +msgstr "Benachrichtigungs-Einstellungen" #: templates/about.html:10 msgid "InvenTree Version Information" @@ -7471,7 +7466,7 @@ msgstr "Ausloggen" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "Möchtest Sie sich wirklich abmelden?" +msgstr "Möchten Sie sich wirklich abmelden?" #: templates/account/logout.html:19 msgid "Back to Site" @@ -7601,15 +7596,15 @@ msgstr "Link hinzufügen" msgid "Add Attachment" msgstr "Anhang hinzufügen" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "Server-Neustart erforderlich" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "Eine Konfigurationsoption wurde geändert, die einen Neustart des Servers erfordert" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "Bitte kontaktieren Sie Ihren Administrator für mehr Informationen" @@ -7631,14 +7626,15 @@ msgid "The following parts are low on required stock" msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "Benötigte Menge" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Verfügbar" @@ -7676,67 +7672,67 @@ msgstr "Der angegebene Server muss erreichbar sein" msgid "Remote image must not exceed maximum allowable file size" msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Keine Antwort" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "keine Antwort vom InvenTree Server" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Fehler 400: Fehlerhafte Anfrage" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "Fehler-Code 400 zurückgegeben" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Fehler 401: Nicht Angemeldet" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Authentication Kredentials nicht angegeben" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Fehler 403: keine Berechtigung" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Fehlende Berechtigung für diese Aktion" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Fehler 404: Ressource nicht gefunden" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Fehler 405: Methode nicht erlaubt" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "HTTP-Methode für diese URL nicht erlaubt" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Fehler 408: Zeitüberschreitung" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Verbindungszeitüberschreitung bei der Datenanforderung" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Unbehandelter Fehler-Code" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Fehler-Code" @@ -7825,45 +7821,44 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barco msgid "Unlink" msgstr "Entfernen" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "Lagerartikel entfernen" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Lagerartikel in Lagerort buchen" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "Einbuchen" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Fehler bei Bestandsübertragung" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "Lagerartikel bereits gescannt" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Lagerartikel besteht bereits in diesem Lagerort" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "Lagerartikel hinzugefügt" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "Barcode entspricht keinem Lagerartikel" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "In Lagerorten buchen" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "Barcode entspricht keinem Lagerort" @@ -7973,55 +7968,63 @@ msgstr "Varianten erlaubt" msgid "Open subassembly" msgstr "Unterbaugruppe öffnen" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "Ersatzteile" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "Kaufpreisspanne" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "Durchschnittlicher Kaufpreis" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "Stückliste anzeigen" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "Stücklisten-Position kontrollieren" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "Diese Position wurde kontrolliert" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "Stücklisten-Position bearbeiten" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "Stücklisten-Position löschen" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "benötigtes Teil" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "Geerbt von übergeordneter Stückliste" @@ -8131,12 +8134,12 @@ msgstr "Standort nicht angegeben" msgid "No active build outputs found" msgstr "Keine aktiven Endprodukte gefunden" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" @@ -8157,115 +8160,115 @@ msgstr "Ersatzteile verfügbar" msgid "Quantity Per" msgstr "Anzahl pro" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Zugeordnet" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "lädt" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "Bestand zuweisen" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Teile auswählen" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "Sie müssen mindestens ein Teil auswählen" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "Alle Teile zugeordnet" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu nehmen)" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Bestandszuordnung bestätigen" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "Lagerartikel für Bauauftrag zuweisen" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "Keine passenden Lagerstandorte" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "Keine passenden Lagerbestände" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "Automatische Lagerzuordnung" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "Lagerartikel zuordnen" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "Keine Bauaufträge passen zur Anfrage" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "Keine Information" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "Keine Teile zugeordnet zu" @@ -8330,34 +8333,34 @@ msgid "No manufacturer parts found" msgstr "Keine Herstellerteile gefunden" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "Vorlagenteil" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "Keine Parameter gefunden" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "Parameter löschen" @@ -8457,17 +8460,21 @@ msgstr "Feldname" msgid "Select Columns" msgstr "Spalten auswählen" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "NEIN" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" -msgstr "" +msgstr "Label an den Drucker gesendet" #: templates/js/translated/label.js:60 templates/js/translated/report.js:118 #: templates/js/translated/stock.js:1015 @@ -8509,11 +8516,11 @@ msgstr "Keine Labels zu den ausgewählten Teilen gefunden" #: templates/js/translated/label.js:261 msgid "Select Printer" -msgstr "" +msgstr "Drucker auswählen" #: templates/js/translated/label.js:265 msgid "Export to PDF" -msgstr "" +msgstr "Als PDF exportieren" #: templates/js/translated/label.js:304 msgid "stock items selected" @@ -8582,58 +8589,58 @@ msgstr "Fehler 400 von Server erhalten" msgid "Error requesting form data" msgstr "Fehler bei Formulardaten-Anfrage" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "Firmen-ID" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "Bestands-ID" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "Standort-ID" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "Bauauftrag-ID" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "Bestell-ID" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "Sendungs-ID" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "Kategorie-ID" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "Herstellerteil-ID" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "Zuliefererteil-ID" #: templates/js/translated/notification.js:228 msgid "Mark as unread" -msgstr "" +msgstr "Als ungelesen markieren" #: templates/js/translated/notification.js:232 msgid "Mark as read" -msgstr "" +msgstr "Als gelesen markieren" #: templates/js/translated/notification.js:256 msgid "No unread notifications" -msgstr "" +msgstr "Keine ungelesenen Benachrichtigungen" #: templates/js/translated/notification.js:297 templates/notifications.html:10 msgid "Notifications will load here" -msgstr "" +msgstr "Benachrichtigungen erscheinen hier" #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" @@ -8711,7 +8718,7 @@ msgstr "Empfang der Teile bestätigen" msgid "Receive Purchase Order Items" msgstr "Bestellpositionen erhalten" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" @@ -8740,7 +8747,7 @@ msgid "Total" msgstr "Summe" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "Stück-Preis" @@ -8749,11 +8756,11 @@ msgid "Total Price" msgstr "Gesamtpreis" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "Diese Position ist überfällig" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "Position empfangen" @@ -8998,125 +9005,133 @@ msgstr "überprüfte Stückliste" msgid "Copy Bill of Materials" msgstr "Stückliste kopieren" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Nachverfolgbares Teil" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "virtuelles Teil" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Abonnierter Teil" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Verkäufliches Teil" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Keine Varianten gefunden" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "Teile-Beziehung löschen" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "Teile-Beziehung löschen" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "Keine Teile gefunden" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "Keine Kategorie" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "Nachverfolgbares Teil" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "virtuelles Teil" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "Abonnierter Teil" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "Verkäufliches Teil" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "Keine Varianten gefunden" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "Teile-Beziehung löschen" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "Teile-Beziehung löschen" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "Keine Teile gefunden" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "Nicht verfügbar" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "Keine Kategorie" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "Listenansicht" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "Rasteransicht" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "Baumansicht" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "Abonnierte Kategorie" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "Pfad" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "Keine zur Anfrage passenden Testvorlagen" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "Dieses Testergebnis ist für ein Hauptteil" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "Testergebnis-Vorlage bearbeiten" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "Testergebnis-Vorlage löschen" -#: templates/js/translated/part.js:1859 +#: templates/js/translated/part.js:1914 #, python-brace-format msgid "No ${human_name} information found" msgstr "Keine ${human_name} Informationen gefunden" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1969 #, python-brace-format msgid "Edit ${human_name}" msgstr "${human_name} bearbeiten" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "${human_name} löschen" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "Aktueller Lagerbestand" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "Keine Zeitplanung für dieses Teil vorhanden" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "Geplante Lagermengen" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "Einzelpreis" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "Einzelpreisdifferenz" @@ -9190,13 +9205,13 @@ msgstr "Aufträge auswählen" msgid "Sales Order(s) must be selected before printing report" msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" -msgstr "" +msgstr "Ergebnisse minimieren" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" -msgstr "" +msgstr "Ergebnisse entfernen" #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" @@ -9567,7 +9582,7 @@ msgid "Include subcategories" msgstr "Unterkategorien einschließen" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "Abonniert" @@ -9732,10 +9747,14 @@ msgid "Show active parts" msgstr "Aktive Teile anzeigen" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "verfügbarer Bestand" +msgid "In stock" +msgstr "Auf Lager" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "Verfügbarer Lagerbestand" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "Käuflich" @@ -9815,11 +9834,11 @@ msgstr "Verkaufen" #: templates/navbar.html:108 msgid "Show Notifications" -msgstr "" +msgstr "Benachrichtigungen anzeigen" #: templates/navbar.html:111 msgid "New Notifications" -msgstr "" +msgstr "Neue Benachrichtigungen" #: templates/navbar.html:132 msgid "Logout" @@ -9837,9 +9856,13 @@ msgstr "Über InvenTree" msgid "InvenTree demo mode" msgstr "InvenTree Demo-Modus" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" -msgstr "" +msgstr "Zeige alle Benachrichtigungen und Verlauf" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -9855,23 +9878,23 @@ msgstr "Erneut einloggen" #: templates/search.html:9 msgid "Show full search results" -msgstr "" +msgstr "Suchergebnis anzeigen" #: templates/search.html:12 msgid "Clear search" -msgstr "" +msgstr "Suche zurücksetzen" #: templates/search.html:16 msgid "Filter results" -msgstr "" +msgstr "Ergebnisse filtern" #: templates/search.html:20 msgid "Close search menu" -msgstr "" +msgstr "Suche abbrechen" #: templates/search.html:35 msgid "No search results" -msgstr "" +msgstr "Keine Treffer gefunden" #: templates/stats.html:9 msgid "Server" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index eb79ea8aef..8438feb019 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -135,7 +135,7 @@ msgstr "" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "" @@ -154,8 +154,8 @@ msgstr "" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "" @@ -241,7 +241,7 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "" @@ -655,7 +655,7 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 971f6d5f61..98ad23505c 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -135,7 +135,7 @@ msgstr "Seleccionar archivo para adjuntar" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Enlace" @@ -154,8 +154,8 @@ msgstr "Comentario del archivo" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Selección no válida" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Nombre" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Nombre" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Descripción" @@ -241,7 +241,7 @@ msgstr "Descripción (opcional)" msgid "parent" msgstr "padre" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Debe ser un numero valido" @@ -655,7 +655,7 @@ msgstr "Construir órden" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Número de orden de construcción o armado" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Breve descripción de la construcción o armado" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Construcción o Armado Superior" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Orden de Construcción o Armado a la que se asigna" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "Orden de Construcción o Armado a la que se asigna" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Orden de Venta a la que se asigna" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Ubicación de la fuente" @@ -798,7 +798,7 @@ 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:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Fecha de finalización" @@ -806,7 +806,7 @@ msgstr "Fecha de finalización" msgid "completed by" msgstr "terminado por" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Emitido por" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "El usuario que emitió esta orden" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Responsable" @@ -827,7 +827,7 @@ msgstr "Responsable" msgid "User responsible for this build order" msgstr "Usuario responsable de esta orden" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Link externo" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "Artículo de stock seleccionado no encontrado en BOM" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Construcción o Armado" @@ -911,7 +911,7 @@ msgstr "Armar para asignar partes" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Producto original de stock" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Producto original de stock" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Ingrese la cantidad para la producción de la construcción" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La cantidad debe ser mayor que cero" @@ -1042,8 +1042,8 @@ msgstr "Debe proporcionarse una lista de salidas de construcción" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "Ubicación para las salidas de construcción completadas" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "El orden de construcción tiene salidas incompletas" msgid "No build outputs have been created for this build order" msgstr "No se han creado salidas para esta orden de construcción" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "Item de Lista de Materiales" @@ -1232,13 +1232,13 @@ 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:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Fecha objetivo" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "Vencido" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Completados" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Orden de Venta" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Emitido por" @@ -1295,32 +1295,36 @@ msgstr "Orden de construcción no se puede completar ya que quedan salidas incom msgid "Are you sure you wish to cancel this build?" msgstr "¿Estás seguro de que quieres cancelar esta construcción?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Detalles de Trabajo" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Fuente de stock" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 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:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Destinación" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Se requiere ubicación de destino" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Partes asignadas" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "Partes asignadas" msgid "Batch" msgstr "Lote" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Creado" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Sin fecha objetivo" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Trabajo incompleto" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "Órdenes de Trabajo herederas" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Asignar Stock a Trabajo" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "Desasignar stock" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Desasignar stock" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Asignar stock" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Pedir partes necesarias" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Partes del pedido" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Stock no ha sido asignado completamente a esta Orden de Trabajo" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "El stock sin rastrear no ha sido asignado completamente para esta Orden de Trabajo" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Asignar partes seleccionadas" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Esta Orden de Trabajo no tiene ningún objeto BOM sin seguimiento asociados" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "Salidas de Trabajo incompletas" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "Crear nueva salida de trabajo" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "Nueva Salida de Trabajo" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "Acciones de salida" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "Completa las salidas seleccionadas" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "Completar salidas" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "Eliminar salidas seleccionadas" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "Eliminar salidas" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Acciones de impresión" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "Imprimir Etiquetas" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "Salidas de Trabajo Completadas" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Adjuntos" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Notas del Trabajo" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Editar notas" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Asignación completa" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Todos los artículos de stock no rastreados han sido asignados" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "Nueva Orden de Trabajo" @@ -1703,7 +1695,7 @@ msgstr "Copiar plantillas de parámetros de categoría" 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:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "Plantilla" msgid "Parts are templates by default" msgstr "Las piezas son plantillas por defecto" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Montaje" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Las piezas pueden ser ensambladas desde otros componentes por defecto" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Componente" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "Las piezas son comprables por defecto" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "Vendible" @@ -1752,7 +1744,7 @@ msgstr "Las piezas se pueden vender por defecto" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Rastreable" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "Cantidad de salto de precio" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "Precio" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "¿El trabajo en este mensaje ha terminado?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Subir Archivo" @@ -2492,7 +2484,7 @@ msgstr "Partes importadas" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Paso anterior" @@ -2625,7 +2617,7 @@ msgstr "Seleccionar fabricante" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "MPN" @@ -2655,7 +2647,7 @@ msgstr "Nombre del parámetro" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Valor" @@ -2663,10 +2655,10 @@ msgstr "Valor" msgid "Parameter value" msgstr "Valor del parámetro" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "Unidades" @@ -2685,7 +2677,7 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma pieza #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Proveedor" @@ -2696,7 +2688,7 @@ msgstr "Seleccionar proveedor" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "SKU" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "Descripción de la parte del proveedor" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Nota" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "costo base" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" @@ -2741,7 +2733,7 @@ msgstr "Paquetes" msgid "Part packaging" msgstr "Embalaje de partes" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "múltiple" @@ -2827,129 +2819,129 @@ msgstr "Teléfono" msgid "Upload Image" msgstr "Cargar Imagen" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Partes de Proveedor" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Crear nueva parte del proveedor" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "Nueva Parte de Proveedor" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "Opciones" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Piezas de pedido" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Eliminar partes" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Eliminar Partes" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Partes del fabricante" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Crear nueva pieza de fabricante" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "Nueva pieza de fabricante" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Stock del Proveedor" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Ordenes de compra" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Crear nueva orden de compra" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Nueva orden de compra" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "Órdenes de venta" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Crear Orden de Venta" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Nueva orden de venta" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "Stock asignado" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Notas de la empresa" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "¿Eliminar piezas de proveedor?" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "Se eliminarán todas las partes del proveedor seleccionadas" @@ -2966,7 +2958,7 @@ msgstr "Fabricantes" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Pedir ítem" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "Proveedores" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "Eliminar partes del proveedor" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "Eliminar" @@ -3009,12 +3001,12 @@ msgstr "Eliminar" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Parámetros" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "Eliminar parámetro" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "Añadir parámetro" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "Stock del Proveedor" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Crear nuevo artículo de stock" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "Nuevo artículo de stock" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "Pedidos de piezas al proveedor" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "Pedir ítem" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Inventario" @@ -3163,7 +3155,7 @@ msgstr "Precios" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "Clientes" msgid "New Customer" msgstr "Nuevo Cliente" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Empresas" @@ -3436,7 +3428,7 @@ msgstr "Orden" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "Orden de compra" @@ -3447,7 +3439,7 @@ msgstr "Ítems de Proveedor" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "Recibido" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "Línea" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "Envío" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "Recibir artículos" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Recibir artículos" @@ -3786,7 +3778,7 @@ msgstr "Seleccionar Parte de Proveedor" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "Subir archivo para orden de compra" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "Paso %(step)s de %(count)s" @@ -3882,27 +3874,27 @@ msgstr "Línea de pedido" msgid "Received Stock" msgstr "Stock Recibido" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "Comprar artículos de orden" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "Añadir artículo de línea" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "Recibir elementos seleccionados" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "Articulos Recibidos" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Notas del pedido" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "Referencia del cliente" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Envíos completados" @@ -3952,21 +3944,21 @@ msgstr "Advertencia" msgid "Cancelling this order means that the order will no longer be editable." msgstr "Cancelar esta orden significa que la orden ya no será editable." -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "Artículos de Pedidos de Venta" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "Envíos pendientes" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "Acciones" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "Nuevo Envío" @@ -4065,19 +4057,19 @@ msgstr "Validación de Lista de Materiales" msgid "This option must be selected" msgstr "Esta opción debe ser seleccionada" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "Debe ser mayor que 0" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "Debe ser una cantidad válida" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "Especificar ubicación para el stock inicial de piezas" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "Este campo es obligatorio" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "Stock Disponible" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "En pedido" @@ -4127,13 +4121,13 @@ msgstr "Palabras clave predeterminadas" msgid "Default keywords for parts in this category" msgstr "Palabras clave por defecto para partes en esta categoría" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoría de parte" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Categorías de parte" @@ -4144,7 +4138,7 @@ msgstr "Categorías de parte" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "El número de serie más reciente es" msgid "Duplicate IPN not allowed in part settings" msgstr "IPN duplicado no permitido en la configuración de partes" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "Nombre de la pieza" @@ -4208,12 +4202,12 @@ msgstr "Palabras claves" 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:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "Categoría" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "Categoría de parte" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "IPN" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "Revisión de parte o número de versión" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "Revisión" @@ -4324,313 +4318,313 @@ msgstr "Fecha BOM comprobada" msgid "Creation User" msgstr "Creación de Usuario" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "Vender múltiples" -#: part/models.py:2412 +#: part/models.py:2413 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:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "Ya existe una prueba con este nombre para esta parte" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Nombre de prueba" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "Introduzca un nombre para la prueba" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "Descripción de prueba" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "Introduce la descripción para esta prueba" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Requerido" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "¿Es necesario pasar esta prueba?" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "Requiere valor" -#: part/models.py:2468 +#: part/models.py:2469 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:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "Adjunto obligatorio" -#: part/models.py:2474 +#: part/models.py:2475 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:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Carácter no válido en el nombre de la plantilla ({c})" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "El nombre de parámetro en la plantilla tiene que ser único" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "Nombre de Parámetro" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "Unidad del Parámetro" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "Parte principal" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "Plantilla de parámetro" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "Data" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "Valor del parámetro" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "Valor predeterminado" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "Valor de parámetro por defecto" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "ID de Parte" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "Seleccionar parte principal" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "Sub parte" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "Seleccionar parte a utilizar en BOM" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "Cantidad del artículo en BOM" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Opcional" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "Este elemento BOM es opcional" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Exceso" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "Referencia de artículo de BOM" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "Notas del artículo de BOM" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "Checksum" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "Suma de comprobación de la línea en BOM" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "Heredado" -#: part/models.py:2768 +#: part/models.py:2769 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:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "Permitir variantes" -#: part/models.py:2774 +#: part/models.py:2775 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:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "La cantidad debe ser un valor entero para las partes rastreables" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "Debe especificar la subparte" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "Ítem de BOM sustituto" -#: part/models.py:3021 +#: part/models.py:3005 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:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "Artículo BOM superior" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "Sustituir parte" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "Seleccionar parte relacionada" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Error al crear relación: compruebe que la parte no está relacionada con sí misma y que la relación es única" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "Seleccionar parte de la que copiar BOM" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "Eliminar Datos Existentes" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "Eliminar elementos BOM existentes antes de copiar" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "Incluye Heredado" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluye elementos BOM que son heredados de partes con plantillas" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "Omitir filas no válidas" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "Activar esta opción para omitir filas inválidas" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "Limpiar BOM Existente" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "Varios resultados encontrados" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "No se encontraron partes coincidentes" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "La parte no está designada como componente" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "Cantidad no proporcionada" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "Cantidad no válida" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "Se requiere al menos un elemento BOM" @@ -4662,7 +4656,7 @@ msgstr "El BOM para %(part)s fue revisado por última vez por %(checker msgid "The BOM for %(part)s has not been validated." msgstr "El BOM para %(part)s no ha sido validada." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "Acciones BOM" @@ -4831,150 +4825,150 @@ msgstr "La nueva parte puede ser un duplicado de estas partes existentes" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "%(full_name)s - %(desc)s (%(match_per)s%% coincidencia)" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Stock de parte" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "Plantillas de prueba de parte" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "Añadir Plantilla de Prueba" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "Asignaciones de órdenes de venta" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "Variantes de Parte" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "Crear nueva variante" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "Nueva Variante" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "Añadir nuevo parámetro" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "Partes relacionadas" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "Añadir Relacionado" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "Lista de Materiales" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "Exportar acciones" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Exportar BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "Imprimir informe BOM" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "Subir BOM" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "Copiar BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "Validar BOM" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "Nuevo Item en el BOM" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "Añadir artículo al BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "Ensamblajes" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "Construcción de partes" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "Construir adjudicaciones de pedidos" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "Proveedores de piezas" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "Fabricantes de piezas" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "Eliminar partes del fabricante" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "¿Eliminar elementos BOM seleccionados?" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "Todos los elementos BOM seleccionados serán eliminados" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "Crear artículo para el BOM" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "Partes relacionadas" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "Añadir artículos relacionados" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "Añadir plantilla de resultados de prueba" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "Editar notas del artículo" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Precio de unidad de compra - %(currency)s" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Diferencia entre precio y costo unitario - %(currency)s" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Costo de Unidad de Proveedor - %(currency)s" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "Precio unitario - %(currency)s" @@ -5118,8 +5112,8 @@ msgstr "La pieza es virtual (no una pieza física)" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "Inactivo" @@ -5164,12 +5158,13 @@ msgstr "Requerido para Pedidos de Venta" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "Puede construir" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "En construcción" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "Costo Total" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "Ningún precio de proveedor disponible" @@ -5342,7 +5337,7 @@ msgstr "Mostrar precio de venta" msgid "Calculation parameters" msgstr "Parámetros de cálculo" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "Coste de Proveedor" @@ -5384,9 +5379,8 @@ msgstr "No hay historial de precios de venta disponible para esta parte." msgid "Set category for the following parts" msgstr "Establecer categoría para las siguientes partes" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "Sin Stock" @@ -5746,7 +5740,7 @@ msgstr "Artículo Stock Informe de prueba" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5961,7 +5955,7 @@ msgstr "Eliminar al agotar" msgid "Delete this Stock Item when stock is depleted" msgstr "Eliminar este artículo de stock cuando se agoten las existencias" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "Notas del artículo de stock" @@ -6180,48 +6174,48 @@ msgstr "Valor de clave primaria de Stock" msgid "Stock transaction notes" msgstr "Notas de transacción de stock" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "Información de Seguimiento de Stock" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "Nueva Entrada" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "Elementos de Stock Hijos" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "Este artículo de stock no tiene ningún elemento secundario" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "Datos de Prueba" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "Informe de Prueba" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "Eliminar Datos de Prueba" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "Añadir Datos de Prueba" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "Elementos de Stock instalados" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "Instalar elemento de stock" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "Añadir Resultado de Prueba" @@ -6481,7 +6475,7 @@ msgid "Sublocations" msgstr "Sub-ubicación" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "Ubicaciones de Stock" @@ -7120,7 +7114,8 @@ msgid "Change Password" msgstr "Cambiar Contraseña" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "Editar" @@ -7604,15 +7599,15 @@ msgstr "Agregar Enlace" msgid "Add Attachment" msgstr "Añadir archivo adjunto" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "Reinicio del Servidor Requerido" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "Se ha cambiado una opción de configuración que requiere reiniciar el servidor" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "Póngase en contacto con su administrador para más información" @@ -7634,14 +7629,15 @@ msgid "The following parts are low on required stock" msgstr "Las siguientes partes están bajas en stock requerido" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "Cantidad requerida" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Disponible" @@ -7679,67 +7675,67 @@ msgstr "Servidor remoto debe ser accesible" msgid "Remote image must not exceed maximum allowable file size" msgstr "La imagen remota no debe exceder el tamaño máximo permitido de archivo" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Sin Respuesta" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "No hay respuesta del servidor InvenTree" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Error 400: Solicitud incorrecta" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "La solicitud API devolvió el código de error 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Error 401: No autenticado" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Credenciales de autenticación no suministradas" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Error 403: Permiso Denegado" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "No tiene los permisos necesarios para acceder a esta función" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Error 404: Recurso No Encontrado" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "El recurso solicitado no se pudo encontrar en el servidor" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Error 405: Método no Permitido" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "Método HTTP no permitido en URL" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Error 408: Tiempo de espera agotado" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Tiempo de espera de conexión agotado al solicitar datos del servidor" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Código de error no controlado" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Código de error" @@ -7828,45 +7824,44 @@ msgstr "Esto eliminará la asociación entre este artículo de stock y el códig msgid "Unlink" msgstr "Desvincular" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "Eliminar elemento de stock" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Comprobar elementos de stock en ubicación" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "Registrar" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Error al transferir stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "Artículo de stock ya escaneado" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Artículo de stock ya está en esta ubicación" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "Artículo de stock añadido" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "El código de barras no coincide con el artículo de stock" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Comprobar en la ubicación" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "El código de barras no coincide con una ubicación válida" @@ -7976,55 +7971,63 @@ msgstr "Stock de variante permitido" msgid "Open subassembly" msgstr "Abrir sub-ensamblaje" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "Sustitutos" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "Rango de Precio de Compra" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "Precio Promedio de Compra" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "Ver BOM" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "Validar Artículo para el BOM" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "Esta línea ha sido validada" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "Editar partes sustitutas" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "Editar Artículo de BOM" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "Eliminar Artículo de BOM" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "No se encontraron elementos BOM" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "¿Está seguro que desea eliminar este elemento BOM?" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "Parte requerida" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "Heredado de BOM superior" @@ -8134,12 +8137,12 @@ msgstr "Ubicación no especificada" msgid "No active build outputs found" msgstr "No se encontraron salidas de trabajo activas" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Editar asignación de stock" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Eliminar asignación de stock" @@ -8160,115 +8163,115 @@ msgstr "Piezas sustitutas disponibles" msgid "Quantity Per" msgstr "Cantidad por" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Asignadas" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "Stock de Trabajo" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "Pedido de stock" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "Asignar stock" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Seleccionar partes" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "Debe seleccionar al menos una parte para asignar" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "Especificar la cantidad de asignación de stock" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Seleccionar ubicación de origen (dejar en blanco para tomar de todas las ubicaciones)" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Confirmar asignación de stock" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "Asignar Artículos de Stock a Orden de Trabajo" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "No hay ubicaciones de stock coincidentes" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "No hay artículos de stock coincidentes" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "No hay trabajos que coincidan con la consulta" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "Seleccionar" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "Orden de trabajo atrasada" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "No hay información de usuario" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "Sin información" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "No se asignaron partes para" @@ -8333,34 +8336,34 @@ msgid "No manufacturer parts found" msgstr "No se encontraron partes del fabricante" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "Plantilla de parte" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "Parte ensamblada" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "No se encontraron parámetros" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "Editar parámetro" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "Eliminar parámetro" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "Editar parámetro" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "Eliminar parámetro" @@ -8460,14 +8463,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "SI" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "NO" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8585,40 +8592,40 @@ msgstr "El servidor devolvió el código de error 400" msgid "Error requesting form data" msgstr "Error al solicitar datos del formulario" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "ID de Empresa" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "ID de Stock" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "ID de Ubicación" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "ID de construcción" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "ID del Pedido" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "ID de envío" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "ID de Categoría" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "ID de Parte del Fabricante" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "ID Parte del Proveedor" @@ -8714,7 +8721,7 @@ msgstr "Confirmar recepción de artículos" msgid "Receive Purchase Order Items" msgstr "Recibir artículos de orden de compra" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "No se encontraron órdenes de compra" @@ -8743,7 +8750,7 @@ msgid "Total" msgstr "Total" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "Precio Unitario" @@ -8752,11 +8759,11 @@ msgid "Total Price" msgstr "Precio Total" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "Recibir ítem de línea" @@ -9001,125 +9008,133 @@ msgstr "Validación de Lista de Materiales" msgid "Copy Bill of Materials" msgstr "Copiar Factura de Materiales" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Parte Rastreable" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "Parte virtual" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Parte suscrita" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Pieza vendible" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "No se encontraron variantes" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "Eliminar relación de parte" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "Eliminar Relación de Parte" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "No se encontraron partes" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "Sin categoría" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "Stock bajo" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "Parte Rastreable" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "Parte virtual" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "Parte suscrita" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "Pieza vendible" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "No se encontraron variantes" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "Eliminar relación de parte" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "Eliminar Relación de Parte" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "No se encontraron partes" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "Sin categoría" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "Mostrar como lista" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "Mostrar como cuadrícula" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "Mostrar como árbol" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "Categoría suscrita" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "Ruta" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "No hay plantillas de prueba que coincidan con la consulta" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "Editar resultado de prueba" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "Eliminar resultado de prueba" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "Esta prueba está definida para una parte principal" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "Editar plantilla de resultado de prueba" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "Eliminar plantilla de resultados de prueba" -#: templates/js/translated/part.js:1859 +#: templates/js/translated/part.js:1914 #, python-brace-format msgid "No ${human_name} information found" msgstr "No se encontró información de ${human_name}" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1969 #, python-brace-format msgid "Edit ${human_name}" msgstr "Editar ${human_name}" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "Eliminar ${human_name}" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "Precio Único" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "Diferencia de Precio Único" @@ -9193,11 +9208,11 @@ msgstr "Seleccionar Pedidos de Venta" msgid "Sales Order(s) must be selected before printing report" msgstr "Pedido(s) de venta debe ser seleccionado antes de imprimir el informe" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9570,7 +9585,7 @@ msgid "Include subcategories" msgstr "Incluir subcategorías" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "Suscrito" @@ -9735,10 +9750,14 @@ msgid "Show active parts" msgstr "Mostrar partes activas" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Stock disponible" +msgid "In stock" +msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "Comprable" @@ -9840,6 +9859,10 @@ msgstr "Acerca de InvenTree" msgid "InvenTree demo mode" msgstr "Modo demo de InvenTree" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.mo b/InvenTree/locale/fa/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..2c90dd0c81 Binary files /dev/null and b/InvenTree/locale/fa/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ae76c1b8e4 --- /dev/null +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -0,0 +1,7845 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-19 06:34+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: InvenTree/api.py:57 +msgid "API endpoint not found" +msgstr "" + +#: InvenTree/api.py:103 +msgid "No action specified" +msgstr "" + +#: InvenTree/api.py:118 +msgid "No matching action found" +msgstr "" + +#: InvenTree/fields.py:100 +msgid "Enter date" +msgstr "" + +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +msgid "Confirm" +msgstr "" + +#: InvenTree/forms.py:142 +msgid "Confirm delete" +msgstr "" + +#: InvenTree/forms.py:143 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:174 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:175 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:182 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:183 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:215 +msgid "Select Category" +msgstr "" + +#: InvenTree/forms.py:236 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:240 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:260 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/helpers.py:442 +#, python-brace-format +msgid "Duplicate serial: {sn}" +msgstr "" + +#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 +#: stock/views.py:993 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/helpers.py:452 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:474 InvenTree/helpers.py:477 InvenTree/helpers.py:480 +#: InvenTree/helpers.py:504 +#, python-brace-format +msgid "Invalid group: {g}" +msgstr "" + +#: InvenTree/helpers.py:518 +#, python-brace-format +msgid "Invalid/no group {group}" +msgstr "" + +#: InvenTree/helpers.py:524 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:528 +#, python-brace-format +msgid "Number of unique serial number ({s}) must match quantity ({q})" +msgstr "" + +#: InvenTree/models.py:185 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:186 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:197 stock/models.py:2165 +msgid "Attachment" +msgstr "" + +#: InvenTree/models.py:198 +msgid "Select file to attach" +msgstr "" + +#: InvenTree/models.py:204 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:868 +#: report/templates/report/inventree_build_order_base.html:165 +msgid "Link" +msgstr "" + +#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 +#: stock/models.py:633 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:208 +msgid "Comment" +msgstr "" + +#: InvenTree/models.py:208 +msgid "File comment" +msgstr "" + +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 +#: common/models.py:1397 common/models.py:1618 common/models.py:1619 +#: common/models.py:1848 common/models.py:1849 part/models.py:2369 +#: part/models.py:2389 +#: report/templates/report/inventree_test_report_base.html:96 +msgid "User" +msgstr "" + +#: InvenTree/models.py:218 +msgid "upload date" +msgstr "" + +#: InvenTree/models.py:241 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:264 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:274 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:277 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:284 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:291 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:326 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 +#: company/models.py:415 label/models.py:112 part/models.py:812 +#: part/models.py:2553 plugin/models.py:40 report/models.py:177 +#: templates/InvenTree/notifications/notifications.html:84 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:126 +#: templates/InvenTree/settings/plugin_settings.html:23 +#: templates/InvenTree/settings/settings.html:320 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:349 build/models.py:209 +#: build/templates/build/detail.html:24 company/models.py:354 +#: company/models.py:570 company/templates/company/company_base.html:68 +#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/supplier_part.html:73 label/models.py:119 +#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 +#: part/templates/part/set_category.html:14 report/models.py:190 +#: report/models.py:553 report/models.py:592 +#: report/templates/report/inventree_build_order_base.html:118 +#: stock/templates/stock/location.html:94 +#: templates/InvenTree/settings/plugin_settings.html:33 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:350 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:358 +msgid "parent" +msgstr "" + +#: InvenTree/serializers.py:65 part/models.py:2872 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:299 +msgid "Filename" +msgstr "" + +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "" + +#: InvenTree/serializers.py:632 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "" + +#: InvenTree/settings.py:665 +msgid "German" +msgstr "" + +#: InvenTree/settings.py:666 +msgid "Greek" +msgstr "" + +#: InvenTree/settings.py:667 +msgid "English" +msgstr "" + +#: InvenTree/settings.py:668 +msgid "Spanish" +msgstr "" + +#: InvenTree/settings.py:669 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:670 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:671 +msgid "French" +msgstr "" + +#: InvenTree/settings.py:672 +msgid "Hebrew" +msgstr "" + +#: InvenTree/settings.py:673 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:674 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:675 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:676 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:677 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:678 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:679 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:680 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:681 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:682 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:683 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:684 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:685 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Chinese" +msgstr "" + +#: InvenTree/status.py:110 +msgid "Background worker check failed" +msgstr "" + +#: InvenTree/status.py:114 +msgid "Email backend not configured" +msgstr "" + +#: InvenTree/status.py:117 +msgid "InvenTree system health checks failed" +msgstr "" + +#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 +#: InvenTree/status_codes.py:323 +msgid "Pending" +msgstr "" + +#: InvenTree/status_codes.py:102 +msgid "Placed" +msgstr "" + +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 +#: order/templates/order/order_base.html:128 +#: order/templates/order/sales_order_base.html:132 +msgid "Complete" +msgstr "" + +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:325 +msgid "Cancelled" +msgstr "" + +#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:187 +msgid "Lost" +msgstr "" + +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 +#: InvenTree/status_codes.py:189 +msgid "Returned" +msgstr "" + +#: InvenTree/status_codes.py:143 order/models.py:997 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:183 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:184 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:185 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:186 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:188 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:278 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:284 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:287 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:290 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:293 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:296 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:303 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:305 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:306 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Production" +msgstr "" + +#: InvenTree/validators.py:25 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:53 +msgid "Invalid character in part name" +msgstr "" + +#: InvenTree/validators.py:66 +#, python-brace-format +msgid "IPN must match regex pattern {pat}" +msgstr "" + +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "" + +#: InvenTree/validators.py:116 +#, python-brace-format +msgid "Illegal character in name ({x})" +msgstr "" + +#: InvenTree/validators.py:137 InvenTree/validators.py:153 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:155 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:538 +msgid "Delete Item" +msgstr "" + +#: InvenTree/views.py:587 +msgid "Check box to confirm item deletion" +msgstr "" + +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:632 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:883 templates/navbar.html:144 +msgid "System Information" +msgstr "" + +#: barcodes/api.py:55 barcodes/api.py:156 +msgid "Must provide barcode_data parameter" +msgstr "" + +#: barcodes/api.py:132 +msgid "No match found for barcode data" +msgstr "" + +#: barcodes/api.py:134 +msgid "Match found for barcode data" +msgstr "" + +#: barcodes/api.py:159 +msgid "Must provide stockitem parameter" +msgstr "" + +#: barcodes/api.py:166 +msgid "No matching stock item found" +msgstr "" + +#: barcodes/api.py:197 +msgid "Barcode already matches Stock Item" +msgstr "" + +#: barcodes/api.py:201 +msgid "Barcode already matches Stock Location" +msgstr "" + +#: barcodes/api.py:205 +msgid "Barcode already matches Part" +msgstr "" + +#: barcodes/api.py:211 barcodes/api.py:223 +msgid "Barcode hash already matches Stock Item" +msgstr "" + +#: barcodes/api.py:229 +msgid "Barcode associated with Stock Item" +msgstr "" + +#: build/forms.py:20 +msgid "Confirm cancel" +msgstr "" + +#: build/forms.py:20 build/views.py:62 +msgid "Confirm build cancellation" +msgstr "" + +#: build/models.py:135 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:139 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_base.html:106 +msgid "Build Order" +msgstr "" + +#: build/models.py:140 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:91 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: templates/InvenTree/search.html:139 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 +msgid "Build Orders" +msgstr "" + +#: build/models.py:200 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:201 order/models.py:213 order/models.py:563 +#: order/models.py:843 part/models.py:2783 +#: part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:92 +msgid "Reference" +msgstr "" + +#: build/models.py:212 +msgid "Brief description of the build" +msgstr "" + +#: build/models.py:221 build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:87 +msgid "Parent Build" +msgstr "" + +#: build/models.py:222 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:227 build/templates/build/build_base.html:77 +#: build/templates/build/detail.html:29 company/models.py:706 +#: order/models.py:912 order/models.py:986 +#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 +#: part/models.py:2315 part/models.py:2331 part/models.py:2350 +#: part/models.py:2367 part/models.py:2469 part/models.py:2591 +#: part/models.py:2681 part/models.py:2758 part/models.py:3048 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:89 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:80 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:16 +msgid "Part" +msgstr "" + +#: build/models.py:235 +msgid "Select part to build" +msgstr "" + +#: build/models.py:240 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:244 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:249 build/serializers.py:730 +msgid "Source Location" +msgstr "" + +#: build/models.py:253 +msgid "" +"Select location to take stock from for this build (leave blank to take from " +"any stock location)" +msgstr "" + +#: build/models.py:258 +msgid "Destination Location" +msgstr "" + +#: build/models.py:262 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:266 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:269 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:273 +msgid "Completed items" +msgstr "" + +#: build/models.py:275 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:279 +msgid "Build Status" +msgstr "" + +#: build/models.py:283 +msgid "Build status code" +msgstr "" + +#: build/models.py:287 build/serializers.py:218 order/serializers.py:272 +#: stock/models.py:637 +msgid "Batch Code" +msgstr "" + +#: build/models.py:291 build/serializers.py:219 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:294 order/models.py:129 part/models.py:1007 +#: part/templates/part/part_base.html:331 +msgid "Creation Date" +msgstr "" + +#: build/models.py:298 order/models.py:585 +msgid "Target completion date" +msgstr "" + +#: build/models.py:299 +msgid "" +"Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:302 order/models.py:255 +msgid "Completion Date" +msgstr "" + +#: build/models.py:308 +msgid "completed by" +msgstr "" + +#: build/models.py:316 +msgid "Issued by" +msgstr "" + +#: build/models.py:317 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:325 build/templates/build/build_base.html:190 +#: build/templates/build/detail.html:115 order/models.py:143 +#: order/templates/order/order_base.html:170 +#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: report/templates/report/inventree_build_order_base.html:159 +msgid "Responsible" +msgstr "" + +#: build/models.py:326 +msgid "User responsible for this build order" +msgstr "" + +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:102 +#: company/templates/company/supplier_part.html:126 +#: part/templates/part/part_base.html:372 stock/models.py:631 +#: stock/templates/stock/item_base.html:357 +msgid "External Link" +msgstr "" + +#: build/models.py:336 build/serializers.py:381 +#: build/templates/build/sidebar.html:21 company/models.py:142 +#: company/models.py:577 company/templates/company/sidebar.html:25 +#: order/models.py:147 order/models.py:845 order/models.py:1107 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/so_sidebar.html:17 part/models.py:996 +#: part/templates/part/part_sidebar.html:60 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 +#: stock/models.py:2065 stock/models.py:2171 stock/serializers.py:332 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 +#: stock/templates/stock/stock_sidebar.html:25 +msgid "Notes" +msgstr "" + +#: build/models.py:337 +msgid "Extra build notes" +msgstr "" + +#: build/models.py:750 +msgid "No build output specified" +msgstr "" + +#: build/models.py:753 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:756 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1168 +msgid "" +"Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1177 +#, python-brace-format +msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1187 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1193 order/models.py:1225 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1199 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1256 +msgid "Selected stock item not found in BOM" +msgstr "" + +#: build/models.py:1325 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/navbar.html:35 +msgid "Build" +msgstr "" + +#: build/models.py:1326 +msgid "Build to allocate parts" +msgstr "" + +#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 +#: stock/templates/stock/item_base.html:23 +#: stock/templates/stock/item_base.html:351 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1343 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1355 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:34 common/models.py:1429 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:836 order/models.py:1265 order/serializers.py:903 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2774 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +msgid "Quantity" +msgstr "" + +#: build/models.py:1356 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1364 +msgid "Install into" +msgstr "" + +#: build/models.py:1365 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:138 build/serializers.py:605 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:150 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:154 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:158 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:164 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:201 build/serializers.py:596 order/models.py:280 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 +#: stock/models.py:471 stock/models.py:1274 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "" +"Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 +#: stock/forms.py:78 stock/serializers.py:314 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:240 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:241 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:275 stock/api.py:565 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:328 build/serializers.py:393 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +msgid "Location" +msgstr "" + +#: build/serializers.py:371 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:377 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +msgid "Status" +msgstr "" + +#: build/serializers.py:434 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:435 +msgid "" +"Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:445 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:450 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:451 +msgid "" +"Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:461 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:470 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:473 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2898 +#: part/models.py:3040 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:511 +msgid "Build output" +msgstr "" + +#: build/serializers.py:520 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:567 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:582 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:638 order/serializers.py:834 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:644 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:651 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:679 order/serializers.py:1077 +msgid "Allocation items must be provided" +msgstr "" + +#: build/serializers.py:731 +msgid "" +"Stock location where parts are to be sourced (leave blank to take from any " +"location)" +msgstr "" + +#: build/serializers.py:739 +msgid "Exclude Location" +msgstr "" + +#: build/serializers.py:740 +msgid "Exclude stock items from this selected location" +msgstr "" + +#: build/serializers.py:745 +msgid "Interchangeable Stock" +msgstr "" + +#: build/serializers.py:746 +msgid "Stock items in multiple locations can be used interchangeably" +msgstr "" + +#: build/serializers.py:751 +msgid "Substitute Stock" +msgstr "" + +#: build/serializers.py:752 +msgid "Allow allocation of substitute parts" +msgstr "" + +#: build/tasks.py:98 +msgid "Stock required for build order" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: order/templates/order/order_base.html:28 +#: order/templates/order/sales_order_base.html:38 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:50 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:54 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:220 build/views.py:53 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:59 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:64 +#: build/templates/build/build_base.html:65 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:87 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:101 +#, python-format +msgid "This Build Order is allocated to Sales Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:108 +#, python-format +msgid "This Build Order is a child of Build Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:115 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:120 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:125 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:130 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:131 order/models.py:849 +#: order/templates/order/order_base.html:156 +#: order/templates/order/sales_order_base.html:163 +#: report/templates/report/inventree_build_order_base.html:126 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:156 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 +#: order/templates/order/order_base.html:98 +#: order/templates/order/sales_order_base.html:93 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:163 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 +#: order/templates/order/sales_order_base.html:170 +msgid "Completed" +msgstr "" + +#: build/templates/build/build_base.html:176 +#: build/templates/build/detail.html:94 order/models.py:983 +#: order/models.py:1079 order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:291 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:183 +#: build/templates/build/detail.html:108 +#: report/templates/report/inventree_build_order_base.html:153 +msgid "Issued By" +msgstr "" + +#: build/templates/build/build_base.html:228 +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/build_base.html:229 +msgid "Build Order cannot be completed as incomplete build outputs remain" +msgstr "" + +#: build/templates/build/cancel.html:5 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:38 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:43 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:56 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:73 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:126 +#: order/templates/order/order_base.html:143 +#: order/templates/order/sales_order_base.html:157 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:137 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:146 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:172 +msgid "Allocate Stock to Build" +msgstr "" + +#: build/templates/build/detail.html:176 +msgid "Unallocate stock" +msgstr "" + +#: build/templates/build/detail.html:177 +msgid "Unallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:179 +msgid "Automatically allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:180 +msgid "Auto Allocate" +msgstr "" + +#: build/templates/build/detail.html:182 +msgid "Manually allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:186 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 +#: part/templates/part/category.html:174 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:199 +msgid "Untracked stock has been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:203 +msgid "Untracked stock has not been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:210 +msgid "Allocate selected items" +msgstr "" + +#: build/templates/build/detail.html:220 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "" + +#: build/templates/build/detail.html:229 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:233 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:234 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:248 +msgid "Output Actions" +msgstr "" + +#: build/templates/build/detail.html:252 +msgid "Complete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:253 +msgid "Complete outputs" +msgstr "" + +#: build/templates/build/detail.html:255 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:256 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:312 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:548 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:549 +msgid "All untracked stock items have been allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/index.html:37 build/templates/build/index.html:38 +msgid "Print Build Orders" +msgstr "" + +#: build/templates/build/index.html:44 +#: order/templates/order/purchase_orders.html:34 +#: order/templates/order/sales_orders.html:37 +msgid "Display calendar view" +msgstr "" + +#: build/templates/build/index.html:47 +#: order/templates/order/purchase_orders.html:37 +#: order/templates/order/sales_orders.html:40 +msgid "Display list view" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:15 +msgid "Completed Outputs" +msgstr "" + +#: build/views.py:73 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:114 +msgid "Delete Build Order" +msgstr "" + +#: common/files.py:65 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:67 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:76 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:34 +msgid "File" +msgstr "" + +#: common/forms.py:35 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:50 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:51 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:381 +msgid "Settings key (must be unique - case insensitive)" +msgstr "" + +#: common/models.py:383 +msgid "Settings value" +msgstr "" + +#: common/models.py:417 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:437 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:448 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:490 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:637 +msgid "No group" +msgstr "" + +#: common/models.py:679 +msgid "Restart required" +msgstr "" + +#: common/models.py:680 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:687 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:689 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:693 +msgid "Use instance name" +msgstr "" + +#: common/models.py:694 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:700 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "" + +#: common/models.py:701 +msgid "Internal company name" +msgstr "" + +#: common/models.py:706 +msgid "Base URL" +msgstr "" + +#: common/models.py:707 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:713 +msgid "Default Currency" +msgstr "" + +#: common/models.py:714 +msgid "Default currency" +msgstr "" + +#: common/models.py:720 +msgid "Download from URL" +msgstr "" + +#: common/models.py:721 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:727 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:728 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:734 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:735 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:739 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:740 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:753 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:754 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:760 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:761 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:767 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:768 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:774 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:775 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:781 part/models.py:2593 report/models.py:183 +msgid "Template" +msgstr "" + +#: common/models.py:782 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:788 part/models.py:959 +msgid "Assembly" +msgstr "" + +#: common/models.py:789 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:795 part/models.py:965 +msgid "Component" +msgstr "" + +#: common/models.py:796 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:802 part/models.py:976 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:803 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:809 part/models.py:981 +msgid "Salable" +msgstr "" + +#: common/models.py:810 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:816 part/models.py:971 +msgid "Trackable" +msgstr "" + +#: common/models.py:817 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:823 part/models.py:991 +#: part/templates/part/part_base.html:151 +msgid "Virtual" +msgstr "" + +#: common/models.py:824 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:830 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:831 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:837 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:838 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:849 +msgid "Show Price in BOM" +msgstr "" + +#: common/models.py:850 +msgid "Include pricing information in BOM tables" +msgstr "" + +#: common/models.py:861 +msgid "Show Price History" +msgstr "" + +#: common/models.py:862 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:868 +msgid "Show related parts" +msgstr "" + +#: common/models.py:869 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:875 +msgid "Create initial stock" +msgstr "" + +#: common/models.py:876 +msgid "Create initial stock on part creation" +msgstr "" + +#: common/models.py:882 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:883 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:889 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:890 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:896 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:897 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:904 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:905 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:911 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:912 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:918 +msgid "Page Size" +msgstr "" + +#: common/models.py:919 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:929 +msgid "Test Reports" +msgstr "" + +#: common/models.py:930 +msgid "Enable generation of test reports" +msgstr "" + +#: common/models.py:936 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:937 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:943 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:944 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:950 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:951 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:953 +msgid "days" +msgstr "" + +#: common/models.py:958 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:959 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:965 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:966 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:972 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:973 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:978 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:979 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:983 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:984 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:989 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:990 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:996 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:997 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:1002 +msgid "Enable registration" +msgstr "" + +#: common/models.py:1003 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:1008 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:1009 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1014 +msgid "Email required" +msgstr "" + +#: common/models.py:1015 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1020 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1021 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1026 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1027 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1032 +msgid "Password twice" +msgstr "" + +#: common/models.py:1033 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1038 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1039 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1044 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1045 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1051 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1052 +msgid "" +"Check that all plugins are installed on startup - enable in container " +"enviroments" +msgstr "" + +#: common/models.py:1059 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1060 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1066 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1067 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1073 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1074 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1080 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:1081 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:1087 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:1088 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:1103 common/models.py:1389 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:1134 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:1135 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:1140 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:1141 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:1146 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:1147 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:1152 +msgid "Recent Part Count" +msgstr "" + +#: common/models.py:1153 +msgid "Number of recent parts to display on index page" +msgstr "" + +#: common/models.py:1159 +msgid "Show unvalidated BOMs" +msgstr "" + +#: common/models.py:1160 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:1165 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:1166 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:1171 +msgid "Recent Stock Count" +msgstr "" + +#: common/models.py:1172 +msgid "Number of recent stock items to display on index page" +msgstr "" + +#: common/models.py:1177 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1178 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:1183 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1184 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:1189 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1190 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:1195 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1196 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:1201 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1202 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:1207 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:1208 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:1213 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:1214 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:1219 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:1220 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:1225 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:1226 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:1231 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:1232 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:1237 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:1238 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:1244 +msgid "Enable email notifications" +msgstr "" + +#: common/models.py:1245 +msgid "Allow sending of emails for event notifications" +msgstr "" + +#: common/models.py:1251 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1252 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1258 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1259 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1265 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1266 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1272 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1273 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1279 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1280 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1286 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1287 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1293 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1294 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1300 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1301 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1307 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1308 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1314 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1315 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1321 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1322 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1328 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1329 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1335 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1336 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1342 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1343 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1349 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1350 +msgid "InvenTree navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1356 +msgid "Date Format" +msgstr "" + +#: common/models.py:1357 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1371 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1372 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:1430 company/forms.py:43 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:1437 company/serializers.py:264 +#: company/templates/company/supplier_part.html:256 +msgid "Price" +msgstr "" + +#: common/models.py:1438 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:1595 common/models.py:1734 +msgid "Endpoint" +msgstr "" + +#: common/models.py:1596 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:1605 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:1610 part/models.py:986 plugin/models.py:46 +msgid "Active" +msgstr "" + +#: common/models.py:1611 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:1625 +msgid "Token" +msgstr "" + +#: common/models.py:1626 +msgid "Token for access" +msgstr "" + +#: common/models.py:1633 +msgid "Secret" +msgstr "" + +#: common/models.py:1634 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:1701 +msgid "Message ID" +msgstr "" + +#: common/models.py:1702 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:1710 +msgid "Host" +msgstr "" + +#: common/models.py:1711 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:1718 +msgid "Header" +msgstr "" + +#: common/models.py:1719 +msgid "Header of this message" +msgstr "" + +#: common/models.py:1725 +msgid "Body" +msgstr "" + +#: common/models.py:1726 +msgid "Body of this message" +msgstr "" + +#: common/models.py:1735 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:1740 +msgid "Worked on" +msgstr "" + +#: common/models.py:1741 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/views.py:93 order/templates/order/purchase_order_detail.html:23 +#: order/views.py:243 part/views.py:208 +#: templates/patterns/wizard/upload.html:37 +msgid "Upload File" +msgstr "" + +#: common/views.py:94 order/views.py:244 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/views.py:209 templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:95 +msgid "Match Items" +msgstr "" + +#: common/views.py:440 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:495 +msgid "Parts imported" +msgstr "" + +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 +#: part/templates/part/import_wizard/match_references.html:19 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:35 +msgid "Previous Step" +msgstr "" + +#: company/forms.py:24 part/forms.py:46 +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: company/forms.py:25 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/models.py:105 +msgid "Company description" +msgstr "" + +#: company/models.py:106 +msgid "Description of the company" +msgstr "" + +#: company/models.py:112 company/templates/company/company_base.html:97 +#: templates/InvenTree/settings/plugin_settings.html:55 +msgid "Website" +msgstr "" + +#: company/models.py:113 +msgid "Company website URL" +msgstr "" + +#: company/models.py:117 company/templates/company/company_base.html:115 +msgid "Address" +msgstr "" + +#: company/models.py:118 +msgid "Company address" +msgstr "" + +#: company/models.py:121 +msgid "Phone number" +msgstr "" + +#: company/models.py:122 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:125 company/templates/company/company_base.html:129 +#: templates/InvenTree/settings/user.html:48 +msgid "Email" +msgstr "" + +#: company/models.py:125 +msgid "Contact email address" +msgstr "" + +#: company/models.py:128 company/templates/company/company_base.html:136 +msgid "Contact" +msgstr "" + +#: company/models.py:129 +msgid "Point of contact" +msgstr "" + +#: company/models.py:131 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:139 part/models.py:878 +msgid "Image" +msgstr "" + +#: company/models.py:144 +msgid "is customer" +msgstr "" + +#: company/models.py:144 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:146 +msgid "is supplier" +msgstr "" + +#: company/models.py:146 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:148 +msgid "is manufacturer" +msgstr "" + +#: company/models.py:148 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:152 company/serializers.py:270 +#: company/templates/company/company_base.html:103 stock/serializers.py:179 +msgid "Currency" +msgstr "" + +#: company/models.py:155 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:320 company/models.py:535 stock/models.py:575 +#: stock/templates/stock/item_base.html:142 +msgid "Base Part" +msgstr "" + +#: company/models.py:324 company/models.py:539 +msgid "Select part" +msgstr "" + +#: company/models.py:335 company/templates/company/company_base.html:73 +#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/supplier_part.html:97 +#: stock/templates/stock/item_base.html:364 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:336 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/templates/company/supplier_part.html:105 +msgid "MPN" +msgstr "" + +#: company/models.py:343 +msgid "Manufacturer Part Number" +msgstr "" + +#: company/models.py:349 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:355 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:409 company/models.py:558 +#: company/templates/company/manufacturer_part.html:6 +#: company/templates/company/manufacturer_part.html:23 +#: stock/templates/stock/item_base.html:374 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:416 +msgid "Parameter name" +msgstr "" + +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:2158 +msgid "Value" +msgstr "" + +#: company/models.py:423 +msgid "Parameter value" +msgstr "" + +#: company/models.py:429 part/models.py:953 part/models.py:2561 +#: part/templates/part/part_base.html:306 +#: templates/InvenTree/settings/settings.html:325 +msgid "Units" +msgstr "" + +#: company/models.py:430 +msgid "Parameter units" +msgstr "" + +#: company/models.py:502 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:545 company/templates/company/company_base.html:78 +#: company/templates/company/supplier_part.html:87 order/models.py:227 +#: order/templates/order/order_base.html:112 +#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 +msgid "Supplier" +msgstr "" + +#: company/models.py:546 +msgid "Select supplier" +msgstr "" + +#: company/models.py:551 company/templates/company/supplier_part.html:91 +#: part/bom.py:238 part/bom.py:266 +msgid "SKU" +msgstr "" + +#: company/models.py:552 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:559 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:565 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:571 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:576 company/templates/company/supplier_part.html:119 +#: part/models.py:2786 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 +msgid "Note" +msgstr "" + +#: company/models.py:580 part/models.py:1871 +msgid "base cost" +msgstr "" + +#: company/models.py:580 part/models.py:1871 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:582 company/templates/company/supplier_part.html:112 +#: stock/models.py:599 stock/templates/stock/item_base.html:322 +msgid "Packaging" +msgstr "" + +#: company/models.py:582 +msgid "Part packaging" +msgstr "" + +#: company/models.py:584 part/models.py:1873 +msgid "multiple" +msgstr "" + +#: company/models.py:584 +msgid "Order multiple" +msgstr "" + +#: company/models.py:708 +msgid "last updated" +msgstr "" + +#: company/serializers.py:70 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:71 +msgid "Currency Code" +msgstr "" + +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 +#: templates/InvenTree/search.html:176 +msgid "Company" +msgstr "" + +#: company/templates/company/company_base.html:22 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:26 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:31 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:32 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:36 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:37 +#: company/templates/company/company_base.html:159 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:56 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:83 order/models.py:574 +#: order/templates/order/sales_order_base.html:115 stock/models.py:618 +#: stock/models.py:619 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:108 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:122 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:205 +#: part/templates/part/part_base.html:491 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/detail.html:14 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:118 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:18 +#: order/templates/order/order_wizard/select_parts.html:44 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:118 +#: part/templates/part/detail.html:353 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:127 +#: company/templates/company/manufacturer_part.html:156 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 +msgid "Options" +msgstr "" + +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 +#: part/templates/part/category.html:174 +msgid "Order parts" +msgstr "" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" +msgstr "" + +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 +msgid "Delete Parts" +msgstr "" + +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:65 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:106 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:116 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 +#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:47 +#: users/models.py:45 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:120 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:121 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:142 +#: company/templates/company/sidebar.html:20 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 +#: templates/InvenTree/settings/sidebar.html:49 templates/navbar.html:58 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:146 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:167 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:184 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:215 +#: part/templates/part/detail.html:452 +msgid "Delete Supplier Parts?" +msgstr "" + +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:453 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: company/templates/company/index.html:8 +msgid "Supplier List" +msgstr "" + +#: company/templates/company/manufacturer_part.html:14 company/views.py:55 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 +#: templates/navbar.html:46 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/supplier_part.html:34 +#: company/templates/company/supplier_part.html:159 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:40 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:44 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/supplier_part.html:63 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/supplier_part.html:15 company/views.py:49 +#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: part/templates/part/detail.html:364 +msgid "Delete supplier parts" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:254 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: users/models.py:218 +msgid "Delete" +msgstr "" + +#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:17 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:147 +#: part/templates/part/detail.html:185 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part.html:66 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:158 +msgid "Delete parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:191 +#: part/templates/part/detail.html:865 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:239 +msgid "Selected parameters will be deleted" +msgstr "" + +#: company/templates/company/manufacturer_part.html:251 +msgid "Delete Parameters" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 stock/models.py:583 +#: stock/templates/stock/item_base.html:386 +msgid "Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:38 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:42 +msgid "Delete supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:138 +#: company/templates/company/supplier_part_navbar.html:12 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:141 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:142 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:155 +#: company/templates/company/supplier_part_navbar.html:19 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:160 +#: part/templates/part/detail.html:81 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:179 +#: part/templates/part/prices.html:7 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:184 +#: company/templates/company/supplier_part.html:298 +#: part/templates/part/prices.html:271 part/views.py:1238 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +msgid "No price break information found" +msgstr "" + +#: company/templates/company/supplier_part.html:224 part/views.py:1300 +msgid "Delete Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:238 part/views.py:1286 +msgid "Edit Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:263 +msgid "Edit price break" +msgstr "" + +#: company/templates/company/supplier_part.html:264 +msgid "Delete price break" +msgstr "" + +#: company/templates/company/supplier_part.html:273 +msgid "Last updated" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:15 +#: part/templates/part/part_sidebar.html:15 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:150 +#: templates/InvenTree/settings/sidebar.html:43 templates/navbar.html:28 +msgid "Stock" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:22 +msgid "Orders" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:26 +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:29 +#: part/templates/part/part_sidebar.html:32 +msgid "Pricing" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:152 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 +msgid "Stock Items" +msgstr "" + +#: company/views.py:50 +msgid "New Supplier" +msgstr "" + +#: company/views.py:56 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:61 templates/InvenTree/search.html:208 +#: templates/navbar.html:57 +msgid "Customers" +msgstr "" + +#: company/views.py:62 +msgid "New Customer" +msgstr "" + +#: company/views.py:69 +msgid "Companies" +msgstr "" + +#: company/views.py:70 +msgid "New Company" +msgstr "" + +#: company/views.py:129 part/views.py:589 +msgid "Download Image" +msgstr "" + +#: company/views.py:158 part/views.py:621 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:165 part/views.py:628 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + +#: company/views.py:174 part/views.py:637 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: label/api.py:97 report/api.py:203 +msgid "No valid objects provided to template" +msgstr "" + +#: label/models.py:113 +msgid "Label name" +msgstr "" + +#: label/models.py:120 +msgid "Label description" +msgstr "" + +#: label/models.py:127 +msgid "Label" +msgstr "" + +#: label/models.py:128 +msgid "Label template file" +msgstr "" + +#: label/models.py:134 report/models.py:294 +msgid "Enabled" +msgstr "" + +#: label/models.py:135 +msgid "Label template is enabled" +msgstr "" + +#: label/models.py:140 +msgid "Width [mm]" +msgstr "" + +#: label/models.py:141 +msgid "Label width, specified in mm" +msgstr "" + +#: label/models.py:147 +msgid "Height [mm]" +msgstr "" + +#: label/models.py:148 +msgid "Label height, specified in mm" +msgstr "" + +#: label/models.py:154 report/models.py:287 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:155 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:258 +msgid "Query filters (comma-separated list of key=value pairs)," +msgstr "" + +#: label/models.py:259 label/models.py:319 label/models.py:366 +#: report/models.py:318 report/models.py:455 report/models.py:493 +msgid "Filters" +msgstr "" + +#: label/models.py:318 +msgid "Query filters (comma-separated list of key=value pairs" +msgstr "" + +#: label/models.py:365 +msgid "Part query filters (comma-separated value of key=value pairs)" +msgstr "" + +#: order/forms.py:24 order/templates/order/order_base.html:52 +msgid "Place order" +msgstr "" + +#: order/forms.py:35 order/templates/order/order_base.html:60 +msgid "Mark order as complete" +msgstr "" + +#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 +#: order/templates/order/sales_order_base.html:60 +msgid "Cancel order" +msgstr "" + +#: order/models.py:125 +msgid "Order description" +msgstr "" + +#: order/models.py:127 +msgid "Link to external page" +msgstr "" + +#: order/models.py:135 +msgid "Created By" +msgstr "" + +#: order/models.py:142 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:147 +msgid "Order notes" +msgstr "" + +#: order/models.py:214 order/models.py:564 +msgid "Order reference" +msgstr "" + +#: order/models.py:219 order/models.py:579 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:228 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:231 order/templates/order/order_base.html:118 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:231 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:238 +msgid "received by" +msgstr "" + +#: order/models.py:243 +msgid "Issue Date" +msgstr "" + +#: order/models.py:244 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:249 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:250 +msgid "" +"Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:256 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:285 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:430 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:575 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:581 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:581 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:586 +msgid "" +"Target date for order completion. Order will be overdue after this date." +msgstr "" + +#: order/models.py:589 order/models.py:1084 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:596 +msgid "shipped by" +msgstr "" + +#: order/models.py:662 +msgid "Order cannot be completed as no parts have been assigned" +msgstr "" + +#: order/models.py:666 +msgid "Only a pending order can be marked as complete" +msgstr "" + +#: order/models.py:669 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:672 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:837 +msgid "Item quantity" +msgstr "" + +#: order/models.py:843 +msgid "Line item reference" +msgstr "" + +#: order/models.py:845 +msgid "Line item notes" +msgstr "" + +#: order/models.py:850 +msgid "Target shipping date for this line item" +msgstr "" + +#: order/models.py:878 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:891 order/models.py:982 order/models.py:1078 +msgid "Order" +msgstr "" + +#: order/models.py:892 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_po_report.html:76 +#: stock/templates/stock/item_base.html:336 +msgid "Purchase Order" +msgstr "" + +#: order/models.py:913 +msgid "Supplier part" +msgstr "" + +#: order/models.py:920 order/templates/order/order_base.html:163 +msgid "Received" +msgstr "" + +#: order/models.py:921 +msgid "Number of items received" +msgstr "" + +#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:929 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:937 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:992 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +msgid "Sale Price" +msgstr "" + +#: order/models.py:993 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:998 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1085 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1092 +msgid "Checked By" +msgstr "" + +#: order/models.py:1093 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1101 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1108 +msgid "Shipment notes" +msgstr "" + +#: order/models.py:1115 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1116 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1126 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1129 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1207 order/models.py:1209 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:1213 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:1215 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:1218 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:1222 +msgid "StockItem is over-allocated" +msgstr "" + +#: order/models.py:1228 order/serializers.py:827 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:1231 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:1232 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:1240 +msgid "Line" +msgstr "" + +#: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 +msgid "Shipment" +msgstr "" + +#: order/models.py:1249 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 +msgid "Item" +msgstr "" + +#: order/models.py:1262 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:1265 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/serializers.py:187 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:238 order/serializers.py:883 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:244 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:254 order/serializers.py:359 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:273 +msgid "Enter batch code for incoming stock items" +msgstr "" + +#: order/serializers.py:281 +msgid "Enter serial numbers for incoming stock items" +msgstr "" + +#: order/serializers.py:294 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:295 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:312 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:331 +msgid "An integer quantity must be provided for trackable parts" +msgstr "" + +#: order/serializers.py:371 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:388 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:399 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:672 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:742 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:792 order/serializers.py:895 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:814 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:908 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:932 order/serializers.py:1057 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:935 order/serializers.py:1060 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:987 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:997 +msgid "The following serial numbers are already allocated" +msgstr "" + +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 +msgid "Are you sure you want to delete this attachment?" +msgstr "" + +#: order/templates/order/order_base.html:33 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:35 +#: order/templates/order/sales_order_base.html:45 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:41 +#: order/templates/order/sales_order_base.html:54 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:45 +#: order/templates/order/sales_order_base.html:58 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:56 +msgid "Receive items" +msgstr "" + +#: order/templates/order/order_base.html:58 +#: order/templates/order/purchase_order_detail.html:30 +msgid "Receive Items" +msgstr "" + +#: order/templates/order/order_base.html:62 +#: order/templates/order/sales_order_base.html:67 order/views.py:181 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/sales_order_base.html:79 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/sales_order_base.html:84 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:94 +#: order/templates/order/sales_order_base.html:89 +msgid "Order Status" +msgstr "" + +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:128 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:130 +#: order/templates/order/sales_order_base.html:134 +#: order/templates/order/sales_order_base.html:144 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:149 +#: report/templates/report/inventree_build_order_base.html:122 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:219 +msgid "Edit Purchase Order" +msgstr "" + +#: order/templates/order/order_cancel.html:8 +msgid "" +"Cancelling this order means that the order and line items will no longer be " +"editable." +msgstr "" + +#: order/templates/order/order_complete.html:7 +msgid "Mark this order as complete?" +msgstr "" + +#: order/templates/order/order_complete.html:10 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: order/templates/order/order_complete.html:11 +msgid "" +"Completing this order means that the order and line items will no longer be " +"editable." +msgstr "" + +#: order/templates/order/order_issue.html:8 +msgid "" +"After placing this purchase order, line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:13 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:14 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:11 +msgid "Step 1 of 2 - Select Part Suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:16 +msgid "Select suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:20 +msgid "No purchaseable parts selected" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:33 +msgid "Select Supplier" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 +#, python-format +msgid "Select a supplier for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:77 +#: part/templates/part/set_category.html:32 +msgid "Remove part" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:8 +msgid "Step 2 of 2 - Select Purchase Orders" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:12 +msgid "Select existing purchase orders, or create new orders." +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:31 +msgid "Items" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:32 +msgid "Select Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:45 +#, python-format +msgid "Create new purchase order for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:68 +#, python-format +msgid "Select a purchase order for %(name)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_po_report.html:84 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:17 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:29 +msgid "Receive selected items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:49 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:33 +msgid "Print Order Reports" +msgstr "" + +#: order/templates/order/sales_order_base.html:43 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:47 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/sales_order_base.html:66 +#: order/templates/order/sales_order_base.html:229 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:102 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:122 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/sales_order_base.html:140 +#: order/templates/order/sales_order_detail.html:77 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:215 +msgid "Edit Sales Order" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:8 +#: stock/templates/stock/stockitem_convert.html:13 +msgid "Warning" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:9 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/sales_order_detail.html:17 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:43 +#: order/templates/order/so_sidebar.html:8 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:47 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:56 +msgid "New Shipment" +msgstr "" + +#: order/views.py:99 +msgid "Cancel Order" +msgstr "" + +#: order/views.py:108 order/views.py:134 +msgid "Confirm order cancellation" +msgstr "" + +#: order/views.py:111 order/views.py:137 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/views.py:125 +msgid "Cancel sales order" +msgstr "" + +#: order/views.py:151 +msgid "Issue Order" +msgstr "" + +#: order/views.py:160 +msgid "Confirm order placement" +msgstr "" + +#: order/views.py:170 +msgid "Purchase order issued" +msgstr "" + +#: order/views.py:197 +msgid "Confirm order completion" +msgstr "" + +#: order/views.py:208 +msgid "Purchase order completed" +msgstr "" + +#: order/views.py:245 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:489 +msgid "Update prices" +msgstr "" + +#: order/views.py:747 +#, python-brace-format +msgid "Ordered {n} parts" +msgstr "" + +#: order/views.py:858 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:864 +msgid "Price not found" +msgstr "" + +#: order/views.py:867 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:872 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/api.py:491 +msgid "Incoming Purchase Order" +msgstr "" + +#: part/api.py:511 +msgid "Outgoing Sales Order" +msgstr "" + +#: part/api.py:529 +msgid "Stock produced by Build Order" +msgstr "" + +#: part/api.py:561 +msgid "Stock required for Build Order" +msgstr "" + +#: part/api.py:641 +msgid "Valid" +msgstr "" + +#: part/api.py:642 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:647 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:1027 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:1031 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:1046 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 +msgid "This field is required" +msgstr "" + +#: part/bom.py:125 part/models.py:112 part/models.py:887 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:356 +msgid "Default Location" +msgstr "" + +#: part/bom.py:126 templates/email/low_stock_notification.html:17 +msgid "Total Stock" +msgstr "" + +#: part/bom.py:127 part/templates/part/part_base.html:189 +msgid "Available Stock" +msgstr "" + +#: part/bom.py:128 part/templates/part/part_base.html:207 +msgid "On Order" +msgstr "" + +#: part/forms.py:84 +msgid "Select part category" +msgstr "" + +#: part/forms.py:121 +msgid "Add parameter template to same level categories" +msgstr "" + +#: part/forms.py:125 +msgid "Add parameter template to all categories" +msgstr "" + +#: part/forms.py:145 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:113 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:126 part/models.py:2637 part/templates/part/category.html:15 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:127 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:96 +#: users/models.py:40 +msgid "Part Categories" +msgstr "" + +#: part/models.py:368 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/settings/sidebar.html:39 templates/navbar.html:21 +#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +msgid "Parts" +msgstr "" + +#: part/models.py:460 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:540 part/models.py:552 +#, python-brace-format +msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" +msgstr "" + +#: part/models.py:682 +msgid "Next available serial numbers are" +msgstr "" + +#: part/models.py:686 +msgid "Next available serial number is" +msgstr "" + +#: part/models.py:691 +msgid "Most recent serial number is" +msgstr "" + +#: part/models.py:786 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:811 part/models.py:2690 +msgid "Part name" +msgstr "" + +#: part/models.py:818 +msgid "Is Template" +msgstr "" + +#: part/models.py:819 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:829 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:830 +msgid "Variant Of" +msgstr "" + +#: part/models.py:836 +msgid "Part description" +msgstr "" + +#: part/models.py:841 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:320 +msgid "Keywords" +msgstr "" + +#: part/models.py:842 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:849 part/models.py:2387 part/models.py:2636 +#: part/templates/part/part_base.html:283 +#: part/templates/part/set_category.html:15 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +msgid "Category" +msgstr "" + +#: part/models.py:850 +msgid "Part category" +msgstr "" + +#: part/models.py:855 part/templates/part/part_base.html:292 +msgid "IPN" +msgstr "" + +#: part/models.py:856 +msgid "Internal Part Number" +msgstr "" + +#: part/models.py:862 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:863 part/templates/part/part_base.html:299 +#: report/models.py:196 +msgid "Revision" +msgstr "" + +#: part/models.py:885 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:932 part/templates/part/part_base.html:365 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:933 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:940 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:941 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:946 part/templates/part/part_base.html:200 +msgid "Minimum Stock" +msgstr "" + +#: part/models.py:947 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:954 +msgid "Stock keeping units for this part" +msgstr "" + +#: part/models.py:960 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:966 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:972 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:977 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:982 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:987 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:992 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:997 +msgid "Part notes - supports Markdown formatting" +msgstr "" + +#: part/models.py:1000 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:1000 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:1003 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:1005 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1009 +msgid "Creation User" +msgstr "" + +#: part/models.py:1873 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:2437 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2454 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2474 +msgid "Test Name" +msgstr "" + +#: part/models.py:2475 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:2480 +msgid "Test Description" +msgstr "" + +#: part/models.py:2481 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:2486 +msgid "Required" +msgstr "" + +#: part/models.py:2487 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:2492 +msgid "Requires Value" +msgstr "" + +#: part/models.py:2493 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:2498 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:2499 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:2510 +#, python-brace-format +msgid "Illegal character in template name ({c})" +msgstr "" + +#: part/models.py:2546 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:2554 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:2561 +msgid "Parameter Units" +msgstr "" + +#: part/models.py:2591 +msgid "Parent Part" +msgstr "" + +#: part/models.py:2593 part/models.py:2642 part/models.py:2643 +#: templates/InvenTree/settings/settings.html:219 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:2595 +msgid "Data" +msgstr "" + +#: part/models.py:2595 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:2647 templates/InvenTree/settings/settings.html:228 +msgid "Default Value" +msgstr "" + +#: part/models.py:2648 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:2682 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2685 +msgid "Part ID" +msgstr "" + +#: part/models.py:2686 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:2689 +msgid "Part Name" +msgstr "" + +#: part/models.py:2693 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2694 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:2697 +msgid "Level" +msgstr "" + +#: part/models.py:2698 +msgid "BOM level" +msgstr "" + +#: part/models.py:2759 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2767 +msgid "Sub part" +msgstr "" + +#: part/models.py:2768 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:2774 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:2776 part/templates/part/upload_bom.html:58 +msgid "Optional" +msgstr "" + +#: part/models.py:2776 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:2779 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:2780 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:2783 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:2786 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:2788 +msgid "Checksum" +msgstr "" + +#: part/models.py:2788 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:2792 part/templates/part/upload_bom.html:57 +msgid "Inherited" +msgstr "" + +#: part/models.py:2793 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:2798 part/templates/part/upload_bom.html:56 +msgid "Allow Variants" +msgstr "" + +#: part/models.py:2799 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:2884 stock/models.py:461 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:2893 part/models.py:2895 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:3007 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:3029 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:3041 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:3049 +msgid "Substitute part" +msgstr "" + +#: part/models.py:3060 +msgid "Part 1" +msgstr "" + +#: part/models.py:3064 +msgid "Part 2" +msgstr "" + +#: part/models.py:3064 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:3096 +msgid "" +"Error creating relationship: check that the part is not related to itself " +"and that the relationship is unique" +msgstr "" + +#: part/serializers.py:835 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:846 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:847 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:852 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:853 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:858 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:859 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:864 +msgid "Copy Substitute Parts" +msgstr "" + +#: part/serializers.py:865 +msgid "Copy substitute parts when duplicate BOM items" +msgstr "" + +#: part/serializers.py:909 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:910 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:937 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:980 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:983 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:986 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:995 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:1003 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:1022 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:18 +msgid "Low stock notification" +msgstr "" + +#: part/tasks.py:19 +#, python-brace-format +msgid "" +"The available stock for {part.name} has fallen below the configured minimum " +"level" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +#, python-format +msgid "The BOM for %(part)s has 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" +msgstr "" + +#: part/templates/part/bom.html:21 +#, python-format +msgid "The BOM for %(part)s has not been validated." +msgstr "" + +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/bom.html:34 +msgid "Delete Items" +msgstr "" + +#: part/templates/part/category.html:28 part/templates/part/category.html:32 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:36 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:42 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:47 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:48 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:53 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:61 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "New Category" +msgstr "" + +#: part/templates/part/category.html:80 part/templates/part/category.html:93 +msgid "Category Path" +msgstr "" + +#: part/templates/part/category.html:94 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/templates/part/category.html:119 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:157 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:158 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set category" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set Category" +msgstr "" + +#: part/templates/part/category.html:176 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export Data" +msgstr "" + +#: part/templates/part/category.html:192 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:285 +msgid "Create Part Category" +msgstr "" + +#: part/templates/part/category.html:305 +msgid "Create Part" +msgstr "" + +#: part/templates/part/category.html:308 +msgid "Create another part after this one" +msgstr "" + +#: part/templates/part/category.html:309 +msgid "Part created successfully" +msgstr "" + +#: part/templates/part/category_delete.html:7 +msgid "Are you sure you want to delete this part category?" +msgstr "" + +#: part/templates/part/category_delete.html:12 +#, python-format +msgid "This category contains %(n)s child categories" +msgstr "" + +#: part/templates/part/category_delete.html:14 +#, python-format +msgid "" +"If this category is deleted, these child categories will be moved to " +"%(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:16 +msgid "" +"If this category is deleted, these child categories will be moved to the top " +"level part category" +msgstr "" + +#: part/templates/part/category_delete.html:23 +#, python-format +msgid "This category contains %(n)s parts" +msgstr "" + +#: part/templates/part/category_delete.html:25 +#, python-format +msgid "If this category is deleted, these parts will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:27 +msgid "" +"If this category is deleted, these parts will be moved to the top level part " +"category" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:9 +msgid "Duplicate Part" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:20 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:52 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:57 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:156 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:157 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:184 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:251 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:255 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:257 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:267 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:268 +msgid "Copy BOM" +msgstr "" + +#: part/templates/part/detail.html:269 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:274 +msgid "New BOM Item" +msgstr "" + +#: part/templates/part/detail.html:275 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:288 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:306 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:43 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:349 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:377 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:393 +msgid "Delete manufacturer parts" +msgstr "" + +#: part/templates/part/detail.html:596 +msgid "Delete selected BOM items?" +msgstr "" + +#: part/templates/part/detail.html:597 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: part/templates/part/detail.html:646 +msgid "Create BOM Item" +msgstr "" + +#: part/templates/part/detail.html:690 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:698 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:795 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/detail.html:928 +#, python-format +msgid "Purchase Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:940 +#, python-format +msgid "Unit Price-Cost Difference - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:952 +#, python-format +msgid "Supplier Unit Cost - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1041 +#, python-format +msgid "Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: templates/patterns/wizard/upload.html:13 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:14 +msgid "Unsuffitient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:13 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:35 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/location.html:34 +msgid "Barcode actions" +msgstr "" + +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:39 +#: stock/templates/stock/location.html:36 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:55 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:67 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:73 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:88 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:91 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:94 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:97 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:116 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:120 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:124 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:128 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:132 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:136 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:143 +msgid "Inactive" +msgstr "" + +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:599 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:177 +#, python-format +msgid "This part is a variant of %(link)s" +msgstr "" + +#: part/templates/part/part_base.html:194 +msgid "In Stock" +msgstr "" + +#: part/templates/part/part_base.html:215 templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:220 +msgid "Allocated to Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:224 +#: part/templates/part/part_base.html:247 +msgid "Required quantity has not been allocated" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: part/templates/part/part_base.html:249 +msgid "Required quantity has been allocated" +msgstr "" + +#: part/templates/part/part_base.html:236 +msgid "Required for Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:243 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:258 +msgid "Can Build" +msgstr "" + +#: part/templates/part/part_base.html:264 +msgid "Building" +msgstr "" + +#: part/templates/part/part_base.html:313 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:342 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:346 +#: stock/templates/stock/item_base.html:166 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:469 part/templates/part/prices.html:144 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:512 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:593 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 +msgid "Total Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 +#: part/templates/part/prices.html:243 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_sidebar.html:12 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:28 +msgid "Used In" +msgstr "" + +#: part/templates/part/part_sidebar.html:47 +msgid "Scheduling" +msgstr "" + +#: part/templates/part/part_sidebar.html:51 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/partial_delete.html:9 +#, python-format +msgid "" +"Part '%(full_name)s' cannot be deleted as it is still " +"marked as active.\n" +"
        Disable the \"Active\" part attribute and re-try.\n" +" " +msgstr "" + +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "" + +#: part/templates/part/partial_delete.html:22 +#, python-format +msgid "" +"This part is used in BOMs for %(count)s other parts. If you delete this " +"part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format +msgid "" +"There are %(count)s stock entries defined for this part. If you delete this " +"part, the following stock entries will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:43 +#, python-format +msgid "" +"There are %(count)s manufacturers defined for this part. If you delete this " +"part, the following manufacturer parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:54 +#, python-format +msgid "" +"There are %(count)s suppliers defined for this part. If you delete this " +"part, the following supplier parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:65 +#, python-format +msgid "" +"There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this " +"part will permanently remove this tracking information." +msgstr "" + +#: part/templates/part/prices.html:16 +msgid "Pricing ranges" +msgstr "" + +#: part/templates/part/prices.html:22 +msgid "Show supplier cost" +msgstr "" + +#: part/templates/part/prices.html:23 +msgid "Show purchase price" +msgstr "" + +#: part/templates/part/prices.html:50 +msgid "Show BOM cost" +msgstr "" + +#: part/templates/part/prices.html:117 +msgid "Show sale cost" +msgstr "" + +#: part/templates/part/prices.html:118 +msgid "Show sale price" +msgstr "" + +#: part/templates/part/prices.html:140 +msgid "Calculation parameters" +msgstr "" + +#: part/templates/part/prices.html:155 +msgid "Supplier Cost" +msgstr "" + +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:181 +msgid "Stock Pricing" +msgstr "" + +#: part/templates/part/prices.html:190 +msgid "No stock pricing history is available for this part." +msgstr "" + +#: part/templates/part/prices.html:200 +msgid "Internal Cost" +msgstr "" + +#: part/templates/part/prices.html:215 part/views.py:1309 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:230 +msgid "BOM Cost" +msgstr "" + +#: part/templates/part/prices.html:256 +msgid "Sale Cost" +msgstr "" + +#: part/templates/part/prices.html:296 +msgid "No sale pice history available for this part." +msgstr "" + +#: part/templates/part/set_category.html:9 +msgid "Set category for the following parts" +msgstr "" + +#: part/templates/part/stock_count.html:7 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "" +"The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +#, python-format +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" + +#: part/templatetags/inventree_extras.py:189 +msgid "Unknown database" +msgstr "" + +#: part/views.py:88 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:138 +#, python-brace-format +msgid "Set category for {n} parts" +msgstr "" + +#: part/views.py:210 +msgid "Match References" +msgstr "" + +#: part/views.py:507 +msgid "None" +msgstr "" + +#: part/views.py:566 +msgid "Part QR Code" +msgstr "" + +#: part/views.py:668 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:694 +msgid "Updated part image" +msgstr "" + +#: part/views.py:697 +msgid "Part image not found" +msgstr "" + +#: part/views.py:785 +msgid "Confirm Part Deletion" +msgstr "" + +#: part/views.py:792 +msgid "Part was deleted" +msgstr "" + +#: part/views.py:801 +msgid "Part Pricing" +msgstr "" + +#: part/views.py:950 +msgid "Create Part Parameter Template" +msgstr "" + +#: part/views.py:960 +msgid "Edit Part Parameter Template" +msgstr "" + +#: part/views.py:967 +msgid "Delete Part Parameter Template" +msgstr "" + +#: part/views.py:1010 +msgid "Edit Part Category" +msgstr "" + +#: part/views.py:1048 +msgid "Delete Part Category" +msgstr "" + +#: part/views.py:1054 +msgid "Part category was deleted" +msgstr "" + +#: part/views.py:1063 +msgid "Create Category Parameter Template" +msgstr "" + +#: part/views.py:1164 +msgid "Edit Category Parameter Template" +msgstr "" + +#: part/views.py:1220 +msgid "Delete Category Parameter Template" +msgstr "" + +#: part/views.py:1242 +msgid "Added new price break" +msgstr "" + +#: part/views.py:1318 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:1326 +msgid "Delete Internal Price Break" +msgstr "" + +#: plugin/apps.py:52 +msgid "" +"Your enviroment has an outdated git version. This prevents InvenTree from " +"loading plugin details." +msgstr "" + +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:138 +msgid "No author found" +msgstr "" + +#: plugin/integration.py:152 +msgid "No date found" +msgstr "" + +#: plugin/models.py:26 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:27 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:32 +msgid "Key" +msgstr "" + +#: plugin/models.py:33 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:41 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:47 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:182 +msgid "Plugin" +msgstr "" + +#: plugin/samples/integration/sample.py:42 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:43 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:48 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:49 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/serializers.py:49 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:50 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:55 +msgid "Package Name" +msgstr "" + +#: plugin/serializers.py:56 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:59 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:60 +msgid "" +"This will install this plugin now into the current instance. The instance " +"will go into maintenance." +msgstr "" + +#: plugin/serializers.py:75 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:77 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: report/api.py:235 report/api.py:282 +#, python-brace-format +msgid "Template file '{template}' is missing or does not exist" +msgstr "" + +#: report/models.py:178 +msgid "Template name" +msgstr "" + +#: report/models.py:184 +msgid "Report template file" +msgstr "" + +#: report/models.py:191 +msgid "Report template description" +msgstr "" + +#: report/models.py:197 +msgid "Report revision number (auto-increments)" +msgstr "" + +#: report/models.py:288 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:295 +msgid "Report template is enabled" +msgstr "" + +#: report/models.py:319 +msgid "StockItem query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:327 +msgid "Include Installed Tests" +msgstr "" + +#: report/models.py:328 +msgid "Include test results for stock items installed inside assembled item" +msgstr "" + +#: report/models.py:378 +msgid "Build Filters" +msgstr "" + +#: report/models.py:379 +msgid "Build query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:421 +msgid "Part Filters" +msgstr "" + +#: report/models.py:422 +msgid "Part query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:456 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:494 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:548 +msgid "Snippet" +msgstr "" + +#: report/models.py:549 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:553 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:588 +msgid "Asset" +msgstr "" + +#: report/models.py:589 +msgid "Report asset file" +msgstr "" + +#: report/models.py:592 +msgid "Asset file description" +msgstr "" + +#: report/templates/report/inventree_build_order_base.html:147 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:79 +#: stock/models.py:623 stock/templates/stock/item_base.html:156 +msgid "Serial Number" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:88 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:2146 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:94 +#: stock/models.py:2152 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin_settings.html:38 +msgid "Date" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:108 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:110 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +msgid "Serial" +msgstr "" + +#: stock/api.py:517 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:524 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:549 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 +#: stock/templates/stock/item_base.html:193 +msgid "Expiry Date" +msgstr "" + +#: stock/forms.py:75 stock/forms.py:199 +msgid "Expiration date for this stock item" +msgstr "" + +#: stock/forms.py:78 +msgid "Enter unique serial numbers (or leave blank)" +msgstr "" + +#: stock/forms.py:133 +msgid "" +"Destination for serialized stock (by default, will remain in current " +"location)" +msgstr "" + +#: stock/forms.py:135 +msgid "Serial numbers" +msgstr "" + +#: stock/forms.py:135 +msgid "Unique serial numbers (must match quantity)" +msgstr "" + +#: stock/forms.py:137 stock/forms.py:171 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/forms.py:169 +msgid "Destination location for uninstalled items" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm uninstall" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm removal of installed stock items" +msgstr "" + +#: stock/models.py:91 stock/models.py:717 +#: stock/templates/stock/item_base.html:407 +msgid "Owner" +msgstr "" + +#: stock/models.py:92 stock/models.py:718 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:442 +msgid "StockItem with this serial number already exists" +msgstr "" + +#: stock/models.py:478 +#, python-brace-format +msgid "Part type ('{pf}') must be {pe}" +msgstr "" + +#: stock/models.py:488 stock/models.py:497 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:489 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:511 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:517 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:524 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:567 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:576 +msgid "Base part" +msgstr "" + +#: stock/models.py:584 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:593 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:600 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:606 stock/templates/stock/item_base.html:282 +msgid "Installed In" +msgstr "" + +#: stock/models.py:609 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:625 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:639 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:643 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:652 +msgid "Source Build" +msgstr "" + +#: stock/models.py:654 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:665 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:668 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:674 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:681 +msgid "" +"Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:694 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:694 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:704 stock/templates/stock/item.html:137 +msgid "Stock Item Notes" +msgstr "" + +#: stock/models.py:713 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:745 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1265 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1271 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1277 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({n})" +msgstr "" + +#: stock/models.py:1280 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1283 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1290 +#, python-brace-format +msgid "Serial numbers already exist: {exists}" +msgstr "" + +#: stock/models.py:1361 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1364 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1367 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1370 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1373 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1376 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1383 stock/serializers.py:832 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1387 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1391 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1395 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1567 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:2066 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:2123 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:2129 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:2147 +msgid "Test name" +msgstr "" + +#: stock/models.py:2153 +msgid "Test result" +msgstr "" + +#: stock/models.py:2159 +msgid "Test output value" +msgstr "" + +#: stock/models.py:2166 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2172 +msgid "Test notes" +msgstr "" + +#: stock/serializers.py:173 +msgid "Purchase price of this stock item" +msgstr "" + +#: stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: stock/serializers.py:294 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:309 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:315 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:333 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:346 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:363 stock/views.py:1019 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:650 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:654 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:684 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:690 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:698 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:708 stock/serializers.py:938 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:796 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:801 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:802 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:807 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:808 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:818 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:900 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:928 +msgid "Stock transaction notes" +msgstr "" + +#: stock/templates/stock/item.html:17 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:22 +msgid "New Entry" +msgstr "" + +#: stock/templates/stock/item.html:74 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:82 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:91 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:99 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:103 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:152 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:156 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:316 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:42 +msgid "Unlink Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:44 +msgid "Link Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:54 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:70 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:83 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:93 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:118 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:120 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:123 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +msgid "Expired" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +msgid "Stale" +msgstr "" + +#: stock/templates/stock/item_base.html:206 +msgid "Last Updated" +msgstr "" + +#: stock/templates/stock/item_base.html:211 +msgid "Last Stocktake" +msgstr "" + +#: stock/templates/stock/item_base.html:215 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:224 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:225 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:238 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:246 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:254 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:260 +msgid "" +"This stock item is serialized - it has a unique serial number and the " +"quantity cannot be adjusted." +msgstr "" + +#: stock/templates/stock/item_base.html:301 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:308 +msgid "Barcode Identifier" +msgstr "" + +#: stock/templates/stock/item_base.html:350 +msgid "Parent Item" +msgstr "" + +#: stock/templates/stock/item_base.html:368 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:393 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:411 +msgid "" +"You are not in the list of owners of this item. This stock item cannot be " +"edited." +msgstr "" + +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 +msgid "Read only" +msgstr "" + +#: stock/templates/stock/item_base.html:486 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_delete.html:9 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: stock/templates/stock/item_delete.html:12 +#, python-format +msgid "" +"This will remove %(qty)s units of %(full_name)s from stock." +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:40 +msgid "Check-in Items" +msgstr "" + +#: stock/templates/stock/location.html:68 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:70 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:72 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:81 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:82 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 +msgid "Location Path" +msgstr "" + +#: stock/templates/stock/location.html:107 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:113 +msgid "Location Owner" +msgstr "" + +#: stock/templates/stock/location.html:117 +msgid "" +"You are not in the list of owners of this location. This stock location " +"cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/stats.html:109 users/models.py:42 +msgid "Stock Locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:8 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: stock/templates/stock/location_delete.html:13 +#, python-format +msgid "This location contains %(n)s child locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:15 +#, python-format +msgid "" +"If this location is deleted, these child locations will be moved to " +"%(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:17 +msgid "" +"If this location is deleted, these child locations will be moved to the top " +"level stock location" +msgstr "" + +#: stock/templates/stock/location_delete.html:25 +#, python-format +msgid "This location contains %(n)s stock items" +msgstr "" + +#: stock/templates/stock/location_delete.html:27 +#, python-format +msgid "" +"If this location is deleted, these stock items will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:29 +msgid "" +"If this location is deleted, these stock items will be moved to the top " +"level stock location" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/templates/stock/stock_uninstall.html:8 +msgid "The following stock items will be uninstalled" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:8 +#, python-format +msgid "This stock item is current an instance of %(part)s" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tracking_delete.html:6 +msgid "Are you sure you want to delete this stock tracking entry?" +msgstr "" + +#: stock/views.py:152 +msgid "Edit Stock Location" +msgstr "" + +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 +msgid "Owner is required (ownership control is enabled)" +msgstr "" + +#: stock/views.py:274 +msgid "Stock Location QR code" +msgstr "" + +#: stock/views.py:293 +msgid "Return to Stock" +msgstr "" + +#: stock/views.py:302 +msgid "Specify a valid location" +msgstr "" + +#: stock/views.py:313 +msgid "Stock item returned from customer" +msgstr "" + +#: stock/views.py:324 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:341 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:342 +msgid "Check the confirmation box" +msgstr "" + +#: stock/views.py:357 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/views.py:382 +msgid "Uninstall Stock Items" +msgstr "" + +#: stock/views.py:479 +msgid "Confirm stock adjustment" +msgstr "" + +#: stock/views.py:490 +msgid "Uninstalled stock items" +msgstr "" + +#: stock/views.py:512 +msgid "Edit Stock Item" +msgstr "" + +#: stock/views.py:672 +msgid "Create new Stock Location" +msgstr "" + +#: stock/views.py:773 +msgid "Create new Stock Item" +msgstr "" + +#: stock/views.py:915 +msgid "Duplicate Stock Item" +msgstr "" + +#: stock/views.py:997 +msgid "Quantity cannot be negative" +msgstr "" + +#: stock/views.py:1097 +msgid "Delete Stock Location" +msgstr "" + +#: stock/views.py:1110 +msgid "Delete Stock Item" +msgstr "" + +#: stock/views.py:1121 +msgid "Delete Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1128 +msgid "Edit Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1137 +msgid "Add Stock Tracking Entry" +msgstr "" + +#: templates/403.html:5 templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/404.html:5 templates/404.html:11 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:14 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:5 templates/500.html:11 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:14 +msgid "The InvenTree server raised an internal error" +msgstr "" + +#: templates/500.html:15 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:10 templates/503.html:35 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:41 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:88 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:98 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:108 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:119 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:145 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:168 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:191 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:202 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:224 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:235 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:255 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:266 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:286 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:297 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:127 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:8 +msgid "Currency Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:19 +msgid "Base Currency" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:24 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:38 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:44 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:49 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/global.html:9 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:31 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:131 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "" +"The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part.html:62 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:10 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:16 +msgid "" +"Changing the settings below require you to immediatly restart InvenTree. Do " +"not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:34 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:39 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:129 +#: users/models.py:39 +msgid "Admin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin_settings.html:28 +msgid "Author" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin_settings.html:43 +msgid "Version" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:93 +msgid "Inactive plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:116 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:125 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:10 +#, python-format +msgid "Plugin details for %(name)s" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:17 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:48 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:62 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:71 +msgid "" +"The code information is pulled from the latest git commit for this plugin. " +"It might not reflect official version numbers or information but the actual " +"code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:77 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:83 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:86 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:88 +msgid "This plugin was found in a local InvenTree path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:94 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:104 +#: templates/about.html:47 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +#: templates/about.html:40 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:112 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +msgid "Sign Status" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:122 +msgid "Sign Key" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reports.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:37 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:42 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:116 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:118 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:120 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:209 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:310 +msgid "No part parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +#: templates/InvenTree/settings/user.html:12 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +msgid "Label Printing" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:26 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:29 +msgid "Server Configuration" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Currencies" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:41 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:18 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:22 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 +msgid "Username" +msgstr "" + +#: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 +msgid "Last Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:54 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:75 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:77 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:79 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:85 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:149 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "" +"You currently do not have any email address set up. You should really add an " +"email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:104 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:109 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:117 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:122 +msgid "" +"You can sign in to your account using any of the following third party " +"accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "" +"You currently have no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user.html:162 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "You currently do not have any factors set up." +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:220 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:226 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:227 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:236 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:237 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:241 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:242 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:243 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:252 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:254 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:266 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:27 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:37 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:48 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:56 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:65 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:83 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:90 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:103 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:104 +#, python-format +msgid "" +"Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are " +"welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + +#: templates/about.html:10 +msgid "InvenTree Version Information" +msgstr "" + +#: templates/about.html:11 templates/about.html:105 templates/modals.html:15 +#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/about.html:20 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:25 +msgid "Development Version" +msgstr "" + +#: templates/about.html:28 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:30 +msgid "Update Available" +msgstr "" + +#: templates/about.html:53 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:58 +msgid "API Version" +msgstr "" + +#: templates/about.html:63 +msgid "Python Version" +msgstr "" + +#: templates/about.html:68 +msgid "Django Version" +msgstr "" + +#: templates/about.html:73 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:78 +msgid "Credits" +msgstr "" + +#: templates/about.html:83 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:88 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:95 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:95 +msgid "copy version information" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:10 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:16 +#, python-format +msgid "" +"Please confirm that %(email)s is an email " +"address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:27 +#, python-format +msgid "" +"This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:16 +#: templates/account/login.html:39 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:21 +#, python-format +msgid "" +"Please sign in with one\n" +"of your existing third party accounts or sign up\n" +"for a account and sign in below:" +msgstr "" + +#: templates/account/login.html:25 +#, python-format +msgid "" +"If you have not created an account yet, then please\n" +"sign up first." +msgstr "" + +#: templates/account/login.html:42 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:47 +msgid "InvenTree demo instance" +msgstr "" + +#: templates/account/login.html:47 +msgid "Click here for login details" +msgstr "" + +#: templates/account/login.html:55 +msgid "or use SSO" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "" +"Forgotten your password? Enter your email address below, and we'll send you " +"an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:36 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:11 templates/account/signup.html:22 +msgid "Sign Up" +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "" +"Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:27 +msgid "Or use a SSO-provider for signup" +msgstr "" + +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "" +"Backup tokens have been generated, but are not revealed here for security " +"reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "Back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "" +"Scan the QR code below with a token generator of your choice (for instance " +"Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 +msgid "Add Attachment" +msgstr "" + +#: templates/base.html:99 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:102 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:102 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:18 +msgid "Available" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:31 +msgid "" +"You are receiving this email because you are subscribed to notifications for " +"this part " +msgstr "" + +#: templates/email/email.html:35 +msgid "InvenTree version" +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:19 +msgid "Minimum Quantity" +msgstr "" + +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + +#: templates/modals.html:19 templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/navbar.html:42 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:54 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:94 templates/search.html:8 +#: templates/search_form.html:6 templates/search_form.html:7 +msgid "Search" +msgstr "" + +#: templates/navbar.html:101 +msgid "Scan Barcode" +msgstr "" + +#: templates/navbar.html:108 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:111 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:132 +msgid "Logout" +msgstr "" + +#: templates/navbar.html:134 +msgid "Login" +msgstr "" + +#: templates/navbar.html:154 +msgid "About InvenTree" +msgstr "" + +#: templates/navbar_demo.html:5 +msgid "InvenTree demo mode" +msgstr "" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:6 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:8 +msgid "Log in again" +msgstr "" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:29 +msgid "Searching" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + +#: templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/stock_table.html:17 +msgid "Barcode Actions" +msgstr "" + +#: templates/stock_table.html:33 +msgid "Print test reports" +msgstr "" + +#: templates/stock_table.html:40 +msgid "Stock Options" +msgstr "" + +#: templates/stock_table.html:45 +msgid "Add to selected stock items" +msgstr "" + +#: templates/stock_table.html:46 +msgid "Remove from selected stock items" +msgstr "" + +#: templates/stock_table.html:47 +msgid "Stocktake selected stock items" +msgstr "" + +#: templates/stock_table.html:48 +msgid "Move selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order selected items" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order stock" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete selected items" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete stock" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:64 +msgid "Users" +msgstr "" + +#: users/admin.py:65 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:187 +msgid "The following users are members of multiple groups:" +msgstr "" + +#: users/admin.py:210 +msgid "Personal info" +msgstr "" + +#: users/admin.py:211 +msgid "Permissions" +msgstr "" + +#: users/admin.py:214 +msgid "Important dates" +msgstr "" + +#: users/models.py:201 +msgid "Permission set" +msgstr "" + +#: users/models.py:209 +msgid "Group" +msgstr "" + +#: users/models.py:212 +msgid "View" +msgstr "" + +#: users/models.py:212 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:214 +msgid "Add" +msgstr "" + +#: users/models.py:214 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:216 +msgid "Change" +msgstr "" + +#: users/models.py:216 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:218 +msgid "Permission to delete items" +msgstr "" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 7b21f4f24f..42ef96ebdc 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -83,7 +83,7 @@ msgstr "Vous devez taper le même e-mail à chaque fois." #: InvenTree/helpers.py:442 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "Dupliquer le numéro : {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 #: stock/views.py:983 @@ -135,7 +135,7 @@ msgstr "Sélectionnez un fichier à joindre" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Lien" @@ -154,8 +154,8 @@ msgstr "Commentaire du fichier" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Choix invalide" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Nom" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Nom" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Description" @@ -241,7 +241,7 @@ msgstr "Description (facultative)" msgid "parent" msgstr "parent" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Doit être un nombre valide" @@ -255,45 +255,45 @@ msgstr "Valeur non valide" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "Fichier de données" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "Sélectionnez le fichier de données à envoyer" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Format de fichier non supporté" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "Fichier trop volumineux" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "Pas de colonnes trouvées dans le fichier" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "Par de lignes de données trouvées dans le fichier" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Pas de lignes de données fournies" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "Pas de colonne de données fournie" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Colonne requise manquante : {name}" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" -msgstr "" +msgstr "Colonne duliquée : '{col}'" #: InvenTree/settings.py:665 msgid "German" @@ -325,7 +325,7 @@ msgstr "Hebrew" #: InvenTree/settings.py:672 msgid "Hungarian" -msgstr "" +msgstr "Hongrois" #: InvenTree/settings.py:673 msgid "Italian" @@ -524,7 +524,7 @@ msgstr "Sortie de l'ordre de construction terminée" #: InvenTree/status_codes.py:302 msgid "Consumed by build order" -msgstr "" +msgstr "Consommé par ordre de construction" #: InvenTree/status_codes.py:304 msgid "Received against purchase order" @@ -655,7 +655,7 @@ msgstr "Ordre de Fabrication" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Brève description de la fabrication" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Fabrication parente" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder associé a cette fabrication" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "BuildOrder associé a cette fabrication" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Commande de vente à laquelle cette construction est allouée" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Emplacement d'origine" @@ -798,7 +798,7 @@ 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:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Date d'achèvement" @@ -806,7 +806,7 @@ msgstr "Date d'achèvement" msgid "completed by" msgstr "achevé par" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Émis par" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Responsable" @@ -827,7 +827,7 @@ msgstr "Responsable" msgid "User responsible for this build order" msgstr "Utilisateur responsable de cette commande de construction" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Lien Externe" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Assemblage" @@ -911,7 +911,7 @@ msgstr "Construction à laquelle allouer des pièces" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Stock d'origine de l'article" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Stock d'origine de l'article" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Entrer la quantité désiré pour la fabrication" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" @@ -1042,8 +1042,8 @@ msgstr "Une liste d'ordre de production doit être fourni" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "L'ordre de production a des sorties incomplètes" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ 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:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Date Cible" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "En retard" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Terminé" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Commandes" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Émis par" @@ -1295,32 +1295,36 @@ msgstr "L'ordre de fabrication ne peut pas être achevé car il reste des output msgid "Are you sure you wish to cancel this build?" msgstr "Êtes-vous sûr de vouloir annuler cette construction?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Détails de la construction" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Stock d'origine" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 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:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Destination" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Stockage de destination non défini" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Pièces allouées" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "Pièces allouées" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Créé le" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Pas de date cible définie" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "Désallouer le stock" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Désallouer le stock" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Allouer le stock" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Commander les pièces requises" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Commander des pièces" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Le stock non suivi a été entièrement alloué pour cet ordre de construction" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "Du stock non suivi n'a pas été entièrement alloué pour cet ordre de construction" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Allouer les éléments sélectionnés" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Cet ordre de construction n'a aucun objet de BOM non suivi associé" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" -msgstr "" +msgstr "Actions d'impression" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Pieces jointes" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Notes de construction" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Modifier les notes" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Allocation terminée" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "Nouvel ordre de construction" @@ -1703,7 +1695,7 @@ msgstr "Copier les templates de paramètres de catégorie" 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:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,24 +1705,24 @@ msgstr "Template" msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" #: common/models.py:789 msgid "Parts can be assembled from other components by default" -msgstr "" +msgstr "Les composantes peuvent être assemblées à partir d'autres composants par défaut" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Composant" #: common/models.py:796 msgid "Parts can be used as sub-components by default" -msgstr "" +msgstr "Les composantes peuvent être utilisées comme sous-composants par défaut" #: common/models.py:802 part/models.py:976 msgid "Purchaseable" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "Vendable" @@ -1752,7 +1744,7 @@ msgstr "Les pièces sont vendables par défaut" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Traçable" @@ -1796,7 +1788,7 @@ msgstr "Inclure les informations de prix dans les tableaux de la BOM" #: common/models.py:861 msgid "Show Price History" -msgstr "" +msgstr "Historique des prix" #: common/models.py:862 msgid "Display historical pricing for Part" @@ -1940,7 +1932,7 @@ msgstr "" #: common/models.py:984 msgid "Prefix value for sales order reference" -msgstr "" +msgstr "Valeur préfixe référence commande client" #: common/models.py:989 msgid "Purchase Order Reference Prefix" @@ -1948,7 +1940,7 @@ msgstr "Préfixe des commandes d'achats" #: common/models.py:990 msgid "Prefix value for purchase order reference" -msgstr "" +msgstr "Valeur préfixe référence bon de commande" #: common/models.py:996 msgid "Enable password forgot" @@ -2352,9 +2344,9 @@ msgstr "" #: common/models.py:1357 msgid "Preferred format for displaying dates" -msgstr "" +msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,9 +2360,9 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" -msgstr "" +msgstr "Prix" #: common/models.py:1438 msgid "Unit price at specified quantity" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2484,7 +2476,7 @@ msgstr "" #: common/views.py:495 msgid "Parts imported" -msgstr "" +msgstr "Composantes importées" #: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 @@ -2492,9 +2484,9 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" -msgstr "" +msgstr "Étape précédente" #: company/forms.py:24 part/forms.py:46 #: templates/InvenTree/settings/mixins/urls.html:14 @@ -2625,7 +2617,7 @@ msgstr "Sélectionner un fabricant" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Valeur" @@ -2663,10 +2655,10 @@ msgstr "Valeur" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Fournisseur" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "coût de base" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,13 +2733,13 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" #: company/models.py:584 msgid "Order multiple" -msgstr "" +msgstr "Commande multiple" #: company/models.py:708 msgid "last updated" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" +msgstr "Commander des composants" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" msgstr "" #: company/templates/company/detail.html:42 #: company/templates/company/detail.html:89 -msgid "Delete parts" -msgstr "" - -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Commandes d'achat" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Créer une commande d'achat" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Nouvelle commande achat" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "Ventes" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Nouvelle commande de vente" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "Stock affecté" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "Fabricants" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "Fournisseurs" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "Supprimer les pièces du fournisseur" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "Supprimer" @@ -3009,12 +3001,12 @@ msgstr "Supprimer" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Paramètres" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,14 +3084,14 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" -msgstr "" +msgstr "Commander un composant" #: company/templates/company/supplier_part.html:179 #: part/templates/part/prices.html:7 msgid "Pricing Information" -msgstr "" +msgstr "Information sur les prix" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Stock" @@ -3163,7 +3155,7 @@ msgstr "Tarif" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "Clients" msgid "New Customer" msgstr "Nouveaux Clients" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Entreprises" @@ -3213,7 +3205,7 @@ msgstr "" #: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" -msgstr "" +msgstr "Aucun objet valide n'a été fourni au modèle" #: label/models.py:113 msgid "Label name" @@ -3311,7 +3303,7 @@ msgstr "" #: order/models.py:147 msgid "Order notes" -msgstr "" +msgstr "Notes de commande" #: order/models.py:214 order/models.py:564 msgid "Order reference" @@ -3436,7 +3428,7 @@ msgstr "Commande" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "Commande d’achat" @@ -3447,7 +3439,7 @@ msgstr "Pièce fournisseur" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "Reçu" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "Ligne" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3705,12 +3697,12 @@ msgstr "Finaliser la commande" #: order/templates/order/order_base.html:84 #: order/templates/order/sales_order_base.html:79 msgid "Order Reference" -msgstr "" +msgstr "Référence de commande" #: order/templates/order/order_base.html:89 #: order/templates/order/sales_order_base.html:84 msgid "Order Description" -msgstr "" +msgstr "Description de la commande" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,14 +3796,14 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" #: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." -msgstr "" +msgstr "Commande déjà traitée. Les fichiers ne peuvent pas être chargés." #: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" @@ -3882,29 +3874,29 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "Articles de la commande d'achat" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" -msgstr "" +msgstr "Notes de commande" #: order/templates/order/purchase_orders.html:30 #: order/templates/order/sales_orders.html:33 @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" -msgstr "" +msgstr "Expéditions en attente" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,9 +4087,11 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" -msgstr "" +msgstr "En Commande" #: part/forms.py:84 msgid "Select part category" @@ -4127,16 +4121,16 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "" +msgstr "Catégorie de composant" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" -msgstr "" +msgstr "Catégories de composants" #: part/models.py:368 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:17 part/templates/part/category.html:133 @@ -4144,11 +4138,11 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" -msgstr "" +msgstr "Composantes" #: part/models.py:460 msgid "Invalid choice for parent part" @@ -4175,7 +4169,7 @@ msgstr "Le numéro de série le plus récent est" msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4197,7 +4191,7 @@ msgstr "" #: part/models.py:836 msgid "Part description" -msgstr "" +msgstr "Description du composant" #: part/models.py:841 part/templates/part/category.html:86 #: part/templates/part/part_base.html:322 @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "Catégorie" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "Catégorie de la pièce" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "IPN" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "Révision" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Requis" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "Données" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 -msgid "Part ID" -msgstr "" - #: part/models.py:2661 +msgid "Part ID" +msgstr "ID de composant" + +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" -msgstr "" +msgstr "Surplus" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4721,7 +4715,7 @@ msgstr "" #: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "Composantes (incluant sous-catégories)" #: part/templates/part/category.html:157 msgid "Create new part" @@ -4769,7 +4763,7 @@ msgstr "" #: part/templates/part/category.html:309 msgid "Part created successfully" -msgstr "" +msgstr "Composant créé avec succès" #: part/templates/part/category_delete.html:7 msgid "Are you sure you want to delete this part category?" @@ -4819,7 +4813,7 @@ msgstr "" #: part/templates/part/copy_part.html:14 #: part/templates/part/create_part.html:11 msgid "Possible Matching Parts" -msgstr "" +msgstr "Composantes correspondantes possibles" #: part/templates/part/copy_part.html:15 #: part/templates/part/create_part.html:12 @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" -msgstr "" +msgstr "Fabricants de composants" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5024,7 +5018,7 @@ msgstr "" #: part/templates/part/part_app_base.html:12 msgid "Part List" -msgstr "" +msgstr "Liste des composants" #: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 msgid "You are subscribed to notifications for this part" @@ -5050,7 +5044,7 @@ msgstr "" #: stock/templates/stock/item_base.html:57 #: stock/templates/stock/location.html:38 msgid "Print Label" -msgstr "" +msgstr "Impression étiquette" #: part/templates/part/part_base.html:55 msgid "Show pricing information" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5314,7 +5309,7 @@ msgstr "" #: part/templates/part/prices.html:16 msgid "Pricing ranges" -msgstr "" +msgstr "Gammes de prix" #: part/templates/part/prices.html:22 msgid "Show supplier cost" @@ -5340,7 +5335,7 @@ msgstr "Afficher le prix de vente" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5457,7 +5451,7 @@ msgstr "" #: part/views.py:507 msgid "None" -msgstr "" +msgstr "Aucun" #: part/views.py:566 msgid "Part QR Code" @@ -5569,7 +5563,7 @@ msgstr "" #: plugin/models.py:41 msgid "PluginName of the plugin" -msgstr "" +msgstr "Non du Plugin" #: plugin/models.py:47 msgid "Is the plugin active" @@ -5597,7 +5591,7 @@ msgstr "" #: plugin/samples/integration/sample.py:52 msgid "Numerical" -msgstr "" +msgstr "Numérique" #: plugin/samples/integration/sample.py:53 msgid "A numerical setting" @@ -5694,7 +5688,7 @@ msgstr "" #: report/models.py:425 msgid "Part Filters" -msgstr "" +msgstr "Filtres de composants" #: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5762,7 +5756,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:94 #: stock/models.py:2125 msgid "Result" -msgstr "" +msgstr "Résultat" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6075,7 +6069,7 @@ msgstr "" #: stock/serializers.py:180 msgid "Purchase currency of this stock item" -msgstr "" +msgstr "Devise d'achat de l'item" #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6309,7 +6303,7 @@ msgstr "" #: stock/templates/stock/item_base.html:161 msgid "previous page" -msgstr "" +msgstr "page précédente" #: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -6563,7 +6557,7 @@ msgstr "" #: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 msgid "Owner is required (ownership control is enabled)" -msgstr "" +msgstr "Propriétaire requis (contrôle de propriété actif)" #: stock/views.py:274 msgid "Stock Location QR code" @@ -6651,7 +6645,7 @@ msgstr "" #: templates/403.html:5 templates/403.html:11 msgid "Permission Denied" -msgstr "" +msgstr "Autorisation refusée" #: templates/403.html:14 msgid "You do not have permission to view this page." @@ -6756,7 +6750,7 @@ msgstr "" #: templates/InvenTree/notifications/inbox.html:9 msgid "Pending Notifications" -msgstr "" +msgstr "Notifications en attente" #: templates/InvenTree/notifications/inbox.html:13 #: templates/InvenTree/notifications/inbox.html:14 @@ -6795,7 +6789,7 @@ msgstr "" #: templates/InvenTree/notifications/notifications.html:116 msgid "No unread notifications found" -msgstr "" +msgstr "Aucune notification non lue trouvée" #: templates/InvenTree/notifications/notifications.html:140 msgid "No notification history found" @@ -7018,7 +7012,7 @@ msgstr "" #: templates/InvenTree/settings/setting.html:37 msgid "No value set" -msgstr "" +msgstr "Aucune valeur définie" #: templates/InvenTree/settings/setting.html:42 msgid "Edit setting" @@ -7085,7 +7079,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:21 #: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" -msgstr "" +msgstr "Rapports" #: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7148,7 +7143,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:79 msgid "Primary" -msgstr "" +msgstr "Principal" #: templates/InvenTree/settings/user.html:85 msgid "Make Primary" @@ -7280,7 +7275,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:37 msgid "Select theme" -msgstr "" +msgstr "Sélectionner un thème" #: templates/InvenTree/settings/user_display.html:48 msgid "Set Theme" @@ -7342,7 +7337,7 @@ msgstr "" #: templates/InvenTree/settings/user_notifications.html:8 msgid "Notification Settings" -msgstr "" +msgstr "Paramètres de notification" #: templates/about.html:10 msgid "InvenTree Version Information" @@ -7599,15 +7594,15 @@ msgstr "Ajouter un lien" msgid "Add Attachment" msgstr "Ajouter une pièce jointe" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "Redémarrage du serveur nécessaire" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "Une option de configuration a été modifiée, ce qui nécessite un redémarrage du serveur" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "Contactez votre administrateur système pour plus d'informations" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" -msgstr "" +msgstr "Quantité requise" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Disponible" @@ -7674,67 +7670,67 @@ msgstr "Le serveur distant doit être accessible" msgid "Remote image must not exceed maximum allowable file size" msgstr "L'image distante ne doit pas excéder la taille maximale autorisée de fichier" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Aucune réponse" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "Aucune réponse du serveur InvenTree" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Erreur 400: Mauvaise requête" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "La requête de l'API a retourné le code d'erreur 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Erreur 401: non authentifié" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Informations d’authentification non fournies" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Erreur 403: Permission refusée" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Vous n'avez pas les autorisations requises pour accéder à cette fonction" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Erreur 404: Ressource introuvable" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "La ressource demandée n'a pas pu être trouvée sur le serveur" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Erreur 405: Méthode non autorisée" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "Méthode HTTP non autorisée à l'adresse URL" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Erreur 408: Délai dépassé" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Délai de connexion dépassé lors de la demande de données depuis le serveur" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Code d'erreur non géré" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Code d’erreur" @@ -7823,45 +7819,44 @@ msgstr "Ceci supprimera l'association entre cet article de stock et le code-barr msgid "Unlink" msgstr "Délier" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "Supprimer l'article de stock" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Vérifier les articles de stock dans l'emplacement" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Erreur lors du transfert de stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "Article de stock déjà scanné" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Article de stock déjà à cet emplacement" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "Article de stock ajouté" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "Le code-barres ne correspond pas à l'article de stock" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Vérifier dans l'emplacement" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "Le code-barres ne correspond pas à un emplacement valide" @@ -7871,7 +7866,7 @@ msgstr "" #: templates/js/translated/bom.js:131 msgid "Row Data" -msgstr "" +msgstr "Données de la rangée" #: templates/js/translated/bom.js:249 msgid "Download BOM Template" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" -msgstr "" +msgstr "Commander des stocks" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" -msgstr "" +msgstr "Pas d'informations sur l'utilisateur" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8305,11 +8308,11 @@ msgstr "" #: templates/js/translated/company.js:363 msgid "Parts Supplied" -msgstr "" +msgstr "Composantes fournies" #: templates/js/translated/company.js:372 msgid "Parts Manufactured" -msgstr "" +msgstr "Composantes fabriquées" #: templates/js/translated/company.js:387 msgid "No company information found" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8507,7 +8514,7 @@ msgstr "" #: templates/js/translated/label.js:261 msgid "Select Printer" -msgstr "" +msgstr "Sélectionner imprimante" #: templates/js/translated/label.js:265 msgid "Export to PDF" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" -msgstr "" +msgstr "ID de commande" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8691,11 +8698,11 @@ msgstr "" #: templates/js/translated/order.js:712 msgid "Order Code" -msgstr "" +msgstr "Référence de commande" #: templates/js/translated/order.js:713 msgid "Ordered" -msgstr "" +msgstr "Commandé" #: templates/js/translated/order.js:715 msgid "Quantity to Receive" @@ -8709,13 +8716,13 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" #: templates/js/translated/order.js:950 templates/js/translated/order.js:1426 msgid "Order is overdue" -msgstr "" +msgstr "Commande en retard" #: templates/js/translated/order.js:1074 templates/js/translated/order.js:2577 msgid "Duplicate Line Item" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Pièce traçable" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "Pièce virtuelle" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Pièce vendable" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "Aucune pièce trouvée" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "Aucune catégorie" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "Stock bas" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "Pièce traçable" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "Pièce virtuelle" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "Pièce vendable" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "Aucune variante trouvée" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "Aucune pièce trouvée" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "Aucune catégorie" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "Afficher sous forme de liste" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "Afficher sous forme de grille" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "Afficher sous forme d'arborescence" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "Chemin d'accès" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "Modifier le résultat du test" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "Supprimer le résultat du test" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "Inclure les sous-catégories" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "Afficher les pièces actives" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Stock disponible" +msgid "In stock" +msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "Achetable" @@ -9835,6 +9854,10 @@ msgstr "À propos d'InvenTree" msgid "InvenTree demo mode" msgstr "Mode démo de InvenTree" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" @@ -9941,7 +9964,7 @@ msgstr "" #: templates/stock_table.html:33 msgid "Print test reports" -msgstr "" +msgstr "Imprimer un rapport de test" #: templates/stock_table.html:40 msgid "Stock Options" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 3c5ae6c201..ee93a1f8a8 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -135,7 +135,7 @@ msgstr "בחר קובץ לצירוף" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "קישור" @@ -154,8 +154,8 @@ msgstr "הערת קובץ" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "בחירה שגויה" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "שם" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "שם" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "תיאור" @@ -241,7 +241,7 @@ msgstr "תיאור (לא חובה)" msgid "parent" msgstr "מקור" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" @@ -655,7 +655,7 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "תיאור קצר אודות הבנייה" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "מקור הבנייה" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index cef8f3e812..14078dda2b 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -135,7 +135,7 @@ msgstr "Válaszd ki a mellekelni kívánt fájlt" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Link" @@ -154,8 +154,8 @@ msgstr "Leírás, bővebb infó" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Érvénytelen választás" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Név" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Név" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Leírás" @@ -241,7 +241,7 @@ msgstr "Leírás (opcionális)" msgid "parent" msgstr "szülő" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" @@ -655,7 +655,7 @@ msgstr "Gyártási utasítás" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Gyártás rövid leírása" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Szülő gyártás" @@ -691,13 +691,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:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Forrás hely" @@ -798,7 +798,7 @@ 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:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Elkészítés dátuma" @@ -806,7 +806,7 @@ msgstr "Elkészítés dátuma" msgid "completed by" msgstr "elkészítette" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Kiállította" @@ -815,11 +815,11 @@ 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:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Felelős" @@ -827,7 +827,7 @@ msgstr "Felelős" msgid "User responsible for this build order" msgstr "Felhasználó aki felelős ezért a gyártási utasításért" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Külső link" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "Kiválasztott készlet tétel nem található az alkatrészjegyzékben" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Gyártás" @@ -911,7 +911,7 @@ msgstr "Gyártás amihez készletet foglaljunk" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Forrás készlet tétel" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Forrás készlet tétel" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Add meg a mennyiséget a gyártás kimenetéhez" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" @@ -1042,8 +1042,8 @@ msgstr "A gyártási kimenetek listáját meg kell adni" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz" msgid "No build outputs have been created for this build order" msgstr "Ehhez a gyártási utasításhoz nem készült kimenet" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" @@ -1221,7 +1221,7 @@ msgstr "Gyártási utasítás elkészültnek jelölhető" #: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" -msgstr "Gyártási utasítás nem teljesíthető mivel befejezetlen kimenetek vannak" +msgstr "Befejezetlen gyártási kimenetek vannak" #: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "A készlet nem lett teljesen lefoglalva ehhez a gyártási utasításhoz" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Cél dátum" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "Megkésett" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Kész" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Vevői rendelés" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Kiállította" @@ -1295,32 +1295,36 @@ msgstr "Gyártási utasítás nem teljesíthető mivel befejezetlen kimenetek ma msgid "Are you sure you wish to cancel this build?" msgstr "Biztosan meg szeretnéd szakítani ezt a gyártást?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "Biztosan törölni szeretnéd ezt a gyártási utasítást?" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Gyártás részletei" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Készlet forrás" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 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:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Cél" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "A cél hely nincs megadva" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Lefoglalt alkatrészek" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "Lefoglalt alkatrészek" msgid "Batch" msgstr "Batch" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Létrehozva" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Nincs céldátum beállítva" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Gyártás nincs kész" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "Alárendelt gyártások" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Készlet foglalása gyártáshoz" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "Készlet felszabadítása" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Készlet felszabadítása" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "Automatikus készlet foglalás a gyártáshoz" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "Automata foglalás" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "Manuális készlet foglalás a gyártáshoz" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Készlet foglalása" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Szükséges alkatrészek rendelése" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Alkatrész rendelés" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Nem követett készlet teljesen lefoglalva ehhez a gyártási utasításhoz" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "Nem követett készlet nincs teljesen lefoglalva ehhez a gyártási utasításhoz" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Kiválasztott tételek lefoglalása" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Ez a gyártási utasítás egyáltalán nem tartalmaz nem követett alkatrészjegyzék tételt" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "Befejezetlen gyártási kimenetek" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "Új gyártási kimenet létrehozása" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "Új gyártási kimenet" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "Kimeneti műveletek" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "Kiválasztott gyártási kimenetek befejezése" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "Befejezett kimenetek" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "Kiválasztott gyártási kimenetek törlése" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "Kimenetek törlése" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Nyomtatási műveletek" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "Címke nyomtatása" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "Befejezett gyártási kimenetek" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Mellékletek" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Gyártási megjegyzések" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Megjegyzések szerkesztése" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Lefoglalás kész" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Az összes nem követett készlet lefoglalásra került" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "Új gyártási utasítás" @@ -1703,7 +1695,7 @@ msgstr "Kategória paraméter sablonok másolása" 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:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "Sablon" msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Gyártmány" @@ -1724,7 +1716,7 @@ 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:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Összetevő" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "Értékesíthető" @@ -1752,7 +1744,7 @@ msgstr "Alkatrészek alapból eladhatók legyenek" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Követésre kötelezett" @@ -2252,59 +2244,59 @@ msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" #: common/models.py:1272 msgid "Search Parts" -msgstr "" +msgstr "Alkatrészek keresése" #: common/models.py:1273 msgid "Display parts in search preview window" -msgstr "" +msgstr "Alkatrészek megjelenítése a keresési előnézetben" #: common/models.py:1279 msgid "Search Categories" -msgstr "" +msgstr "Kategóriák keresése" #: common/models.py:1280 msgid "Display part categories in search preview window" -msgstr "" +msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" #: common/models.py:1286 msgid "Search Stock" -msgstr "" +msgstr "Készlet keresése" #: common/models.py:1287 msgid "Display stock items in search preview window" -msgstr "" +msgstr "Készlet tételek megjelenítése a keresési előnézetben" #: common/models.py:1293 msgid "Search Locations" -msgstr "" +msgstr "Helyek keresése" #: common/models.py:1294 msgid "Display stock locations in search preview window" -msgstr "" +msgstr "Készlet helyek megjelenítése a keresési előnézetben" #: common/models.py:1300 msgid "Search Companies" -msgstr "" +msgstr "Cégek keresése" #: common/models.py:1301 msgid "Display companies in search preview window" -msgstr "" +msgstr "Cégek megjelenítése a keresési előnézetben" #: common/models.py:1307 msgid "Search Purchase Orders" -msgstr "" +msgstr "Beszerzési rendelések keresése" #: common/models.py:1308 msgid "Display purchase orders in search preview window" -msgstr "" +msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" #: common/models.py:1314 msgid "Search Sales Orders" -msgstr "" +msgstr "Vevői rendelések keresése" #: common/models.py:1315 msgid "Display sales orders in search preview window" -msgstr "" +msgstr "Vevői rendelések megjelenítése a keresési előnézetben" #: common/models.py:1321 msgid "Search Preview Results" @@ -2312,7 +2304,7 @@ msgstr "Keresési előnézet eredményei" #: common/models.py:1322 msgid "Number of results to show in each section of the search preview window" -msgstr "" +msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" #: common/models.py:1328 msgid "Hide Inactive Parts" @@ -2354,7 +2346,7 @@ msgstr "Dátum formátum" msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" @@ -2368,7 +2360,7 @@ msgstr "Árlépcső mennyiség" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "Ár" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Fájl feltöltése" @@ -2492,7 +2484,7 @@ msgstr "Importált alkatrészek" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Előző lépés" @@ -2625,13 +2617,13 @@ msgstr "Gyártó kiválasztása" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "MPN" #: company/models.py:343 templates/js/translated/part.js:247 msgid "Manufacturer Part Number" -msgstr "Gyártói alkatrész azonosító" +msgstr "Gyártói cikkszám" #: company/models.py:349 msgid "URL for external manufacturer part link" @@ -2655,7 +2647,7 @@ msgstr "Paraméter neve" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Érték" @@ -2663,10 +2655,10 @@ msgstr "Érték" msgid "Parameter value" msgstr "Paraméter értéke" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "Mértékegységek" @@ -2685,7 +2677,7 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Beszállító" @@ -2696,13 +2688,13 @@ msgstr "Beszállító kiválasztása" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "SKU" #: company/models.py:552 templates/js/translated/part.js:228 msgid "Supplier stock keeping unit" -msgstr "Beszállítói alkatrész azonosító" +msgstr "Beszállítói cikkszám" #: company/models.py:559 msgid "Select manufacturer part" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Megjegyzés" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "alap költség" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" @@ -2741,7 +2733,7 @@ msgstr "Csomagolás" msgid "Part packaging" msgstr "Alkatrész csomagolás" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "többszörös" @@ -2827,129 +2819,129 @@ msgstr "Telefonszám" msgid "Upload Image" msgstr "Kép feltöltése" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Beszállítói alkatrészek" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Új beszállítói alkatrész létrehozása" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "Új beszállítói alkatrész" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "Opciók" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Alkatrész rendelés" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Alkatrész törlés" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Alkatrész törlés" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Gyártói alkatrészek" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Új gyártói alkatrész létrehozása" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "Új gyártói alkatrész" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Beszállítói készlet" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Beszerzési rendelések" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Beszerzési rendelés létrehozása" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Új beszerzési rendelés" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "Vevői rendelések" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Vevői rendelés létrehozása" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Új vevői rendelés" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "Hozzárendelt készlet" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Cég megjegyzések" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "Töröljük a beszállítói alkatrészeket?" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz" @@ -2966,7 +2958,7 @@ msgstr "Gyártók" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Alkatrész rendelés" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "Beszállítók" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "Beszállítói alkatrész törlése" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "Törlés" @@ -3009,12 +3001,12 @@ msgstr "Törlés" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Paraméterek" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "Paraméterek törlése" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "Paraméter hozzáadása" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "Beszállítói készlet" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Új készlet tétel létrehozása" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "Új készlet tétel" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "Beszállítói alkatrész rendelések" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "Alkatrész rendelése" @@ -3137,10 +3129,10 @@ msgstr "Utoljára módosítva" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Készlet" @@ -3163,7 +3155,7 @@ msgstr "Árazás" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "Vevők" msgid "New Customer" msgstr "Új vevő" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Cégek" @@ -3436,7 +3428,7 @@ msgstr "Rendelés" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "Beszerzési rendelés" @@ -3447,7 +3439,7 @@ msgstr "Beszállítói alkatrész" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "Beérkezett" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "Sor" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "Szállítmány" @@ -3693,14 +3685,14 @@ msgid "Receive items" msgstr "Érkezett tételek bevételezése" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Bevételezés" #: order/templates/order/order_base.html:62 #: order/templates/order/sales_order_base.html:67 order/views.py:181 msgid "Complete Order" -msgstr "Rendelés kész" +msgstr "Rendelés befejezése" #: order/templates/order/order_base.html:84 #: order/templates/order/sales_order_base.html:79 @@ -3743,7 +3735,7 @@ msgstr "A rendelés törlésével annak adatai és sortételei a továbbiakban m #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" -msgstr "Rendelés késznek jelölése?" +msgstr "Rendelés befejezettnek jelölése?" #: order/templates/order/order_complete.html:10 msgid "This order has line items which have not been marked as received." @@ -3751,7 +3743,7 @@ msgstr "Ez a rendelés olyan sortételeket tartalmaz amik még nem érkeztek be. #: order/templates/order/order_complete.html:11 msgid "Completing this order means that the order and line items will no longer be editable." -msgstr "A rendelés készre jelölésével annak adatai és sortételei a továbbiakban már nem lesznek szerkeszthetők." +msgstr "A rendelés befejezésével jelölésével annak adatai és sortételei a továbbiakban már nem lesznek szerkeszthetők." #: order/templates/order/order_issue.html:8 msgid "After placing this purchase order, line items will no longer be editable." @@ -3786,7 +3778,7 @@ msgstr "Beszállítói alkatrész kiválasztása" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "Fájl feltöltése a beszerzési megrendeléshez" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "%(step)s/%(count)s. lépés" @@ -3882,27 +3874,27 @@ msgstr "Sortételek" msgid "Received Stock" msgstr "Beérkezett készlet" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "Beszerzési rendelés tételei" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "Sortétel hozzáadása" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "Kiválasztott tételek bevételezése" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "Érkezett tételek" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Rendelés megjegyzések" @@ -3922,7 +3914,7 @@ msgstr "Csomagolási lista nyomtatása" #: order/templates/order/sales_order_base.html:66 #: order/templates/order/sales_order_base.html:229 msgid "Complete Sales Order" -msgstr "Vevői rendelés kész" +msgstr "Vevői rendelés befejezése, minden kiszállítva" #: order/templates/order/sales_order_base.html:102 msgid "This Sales Order has not been fully allocated" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "Vevői azonosító" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Kész szállítások" @@ -3952,21 +3944,21 @@ msgstr "Figyelem" msgid "Cancelling this order means that the order will no longer be editable." msgstr "A rendelés törlésével annak adatai a továbbiakban már nem lesznek szerkeszthetők." -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "Vevői rendelés tételek" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "Függő szállítmányok" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "Műveletek" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "Új szállítmány" @@ -4065,19 +4057,19 @@ msgstr "Teljes alkatrészjegyzék jóváhagyása" msgid "This option must be selected" msgstr "Ennek az opciónak ki kll lennie választva" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "Nullánál nagyobb kell legyen" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "Érvényes mennyiségnek kell lennie" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "Hely megadása a kezdeti alkarész készlethez" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "Ez a mező kötelező" @@ -4095,9 +4087,11 @@ msgid "Available Stock" msgstr "Elérhető készlet" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" -msgstr "Beszállítás alatt" +msgstr "Rendelve" #: part/forms.py:84 msgid "Select part category" @@ -4127,13 +4121,13 @@ msgstr "Alapértelmezett kulcsszavak" msgid "Default keywords for parts in this category" msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Alkatrész kategóriák" @@ -4144,7 +4138,7 @@ msgstr "Alkatrész kategóriák" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "A legutóbbi sorozatszám" msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "Alkatrész neve" @@ -4208,12 +4202,12 @@ msgstr "Kulcsszavak" 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:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "Kategória" @@ -4222,21 +4216,21 @@ msgid "Part category" msgstr "Alkatrész kategória" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "IPN" #: part/models.py:856 msgid "Internal Part Number" -msgstr "Belső alkatrész azonosító" +msgstr "Belső cikkszám" #: part/models.py:862 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:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "Változat" @@ -4324,313 +4318,313 @@ msgstr "Alkatrészjegyzék ellenőrzési dátuma" msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:2412 +#: part/models.py:2413 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:2429 +#: part/models.py:2430 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:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Kötelező" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:2468 +#: part/models.py:2469 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:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:2474 +#: part/models.py:2475 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:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Érvénytelen karakter ({c}) a sablon nevében" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "Paraméter mértékegysége" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "Adat" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" -msgstr "Alkatrész azonosító vagy alkatrész név" - -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 -msgid "Part ID" -msgstr "Alkatrész azonosító" +msgstr "Alkatrész ID vagy alkatrész név" #: part/models.py:2661 -msgid "Unique part ID value" -msgstr "Egyedi alkatrész azonosító érték" +msgid "Part ID" +msgstr "Alkatrész ID" -#: part/models.py:2664 +#: part/models.py:2662 +msgid "Unique part ID value" +msgstr "Egyedi alkatrész ID értéke" + +#: part/models.py:2665 msgid "Part Name" msgstr "Alkatrész neve" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "Alkatrész IPN" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "Szint" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Opcionális" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:2755 +#: part/models.py:2756 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:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "Örökölt" -#: part/models.py:2768 +#: part/models.py:2769 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:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "Változatok" -#: part/models.py:2774 +#: part/models.py:2775 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:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 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:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:3021 +#: part/models.py:3005 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:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "1.rész" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "2.rész" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Hiba a kapcsolat létrehozása közben: ellenőrizd hogy az alkatrész nem kapcsolódik-e saját magához és azt hogy a kapcsolat egyedi" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:686 +#: part/serializers.py:847 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:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:692 +#: part/serializers.py:853 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:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:704 +#: part/serializers.py:865 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:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "Meglévő alkatrészjegyzék törlése" -#: part/serializers.py:749 +#: part/serializers.py:910 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:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "Nincs megadva alkatrész oszlop" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "Több egyező alkatrész is található" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "Nincs egyező alkatrész" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "Az alkatrész nem lett összetevőként jelölve" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "Mennyiség nincs megadva" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "Érvénytelen mennyiség" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "Legalább egy alkatrészjegyzék tétel szükséges" @@ -4662,7 +4656,7 @@ msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzéket utoljár 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." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "Alkatrészjegyzék műveletek" @@ -4831,150 +4825,150 @@ msgstr "Az új alkatrész lehet hogy másodpéldánya ezeknek a létezőknek" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "%(full_name)s - %(desc)s (%(match_per)s%% egyezik)" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Alkatrész készlet" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "Alkatrész teszt sablonok" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "Teszt sablon hozzáadása" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "Vevői rendeléshez foglalások" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "Alkatrész változatok" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "Új változat létrehozása" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "Új változat" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "Paraméter hozzáadása" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "Kapcsolódó alkatrészek" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "Kapcsolódó hozzáadása" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "Alkatrészjegyzék" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "Exportálási műveletek" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Alkatrészjegyzék exportálása" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "Alkatrészjegyzék riport nyomtatása" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "Alkatrészjegyzék feltöltése" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "Alkatrészjegyzék jóváhagyása" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "Új alkatrészjegyzék tétel" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "Alkatrészjegyzék tétel hozzáadása" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "Gyártmányok" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "Alkatrész gyártások" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "Gyártáshoz foglalások" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "Alkatrész beszállítók" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "Alkatrész gyártók" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "Gyártói alkatrészek törlése" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "Töröljük a kiválasztott alkatrészjegyzék tételeket?" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "Az összes kijelölt alkatrészjegyzék tétel törlésre kerül" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "Alkatrészjegyzék tétel létrehozása" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "Kapcsolódó alkatrész" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "Kapcsolódó alkatrész hozzáadása" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "Teszt eredmény sablon hozzáadása" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "Alkatrész megjegyzések szerkesztése" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Beszerzési egységár - %(currency)s" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Egységár-önköltség különbség - %(currency)s" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Beszállítói egység költség - %(currency)s" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "Egységár - %(currency)s" @@ -5118,8 +5112,8 @@ msgstr "Virtuális (nem kézzelfogható alkatrész)" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "Inaktív" @@ -5164,12 +5158,13 @@ msgstr "Vevői rendelésekhez szükséges" msgid "Allocated to Sales Orders" msgstr "Vevő rendeléshez lefoglalva" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "Gyártható" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "Gyártásban" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "Teljes költség" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "Nincs beszállítói árinfomáció" @@ -5340,7 +5335,7 @@ msgstr "Eladási ár megjelenítése" msgid "Calculation parameters" msgstr "Számítási paraméterek" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "Beszállítói költség" @@ -5382,9 +5377,8 @@ msgstr "Az alkatrészhez nem áll rendelkezésre eladási ártörténet." msgid "Set category for the following parts" msgstr "Állítsd be a következő alkatrészek kategóriáját" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "Nincs készlet" @@ -5744,7 +5738,7 @@ msgstr "Készlet tétel teszt riport" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "Törlés ha kimerül" msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "Készlet tétel megjegyzések" @@ -6178,48 +6172,48 @@ msgstr "Készlet tétel elsődleges kulcs értéke" msgid "Stock transaction notes" msgstr "Készlet tranzakció megjegyzései" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "Készlettörténeti információk" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "Új bejegyzés" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "Al-készlet tételek" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "Ez a készlet tétel nem tartalmaz egy altételt sem" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "Teszt adatok" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "Teszt riport" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "Teszt adatok törlése" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "Teszt adatok hozzáadása" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "Beépített készlet tételek" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "Készlet tétel beépítése" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "Teszt eredmény hozzáadása" @@ -6370,11 +6364,11 @@ msgstr "Ez a készlet tétel nem felelt meg az összes szükséges teszten" #: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" -msgstr "Ez a készlet tétel ehhez a vevői rendeléshez van lefoglalva:" +msgstr "Foglalva ehhez a vevői rendeléshez" #: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" -msgstr "Ez a készlet tétel ehhez a gyártási utasításhoz van lefoglalva:" +msgstr "Foglalva ehhez a gyártási utasításhoz" #: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "Alhelyek" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "Készlethelyek" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "Jelszó módosítása" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "Szerkesztés" @@ -7599,15 +7594,15 @@ msgstr "Link hozzáadása" msgid "Add Attachment" msgstr "Melléklet hozzáadása" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "Kiszolgáló újraindítása szükséges" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "Egy olyan konfigurációs opció megváltozott ami a kiszolgáló újraindítását igényli" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "Vedd fel a kapcsolatot a rendszergazdával további információkért" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "A következő alkatrészek szükséges készlete alacsony" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "Szükséges mennyiség" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Elérhető" @@ -7674,67 +7670,67 @@ msgstr "A távoli kiszolgálónak elérhetőnek kell lennie" msgid "Remote image must not exceed maximum allowable file size" msgstr "A távoli kép mérete nem haladhatja meg a maximális fájlméretet" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Nincs válasz" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "Nincs válasz az InvenTree kiszolgálótól" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Error 400: Rossz kérelem" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "Az API kérelem 400-as hibakódot adott vissza" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Error 401: Nincs hitelesítve" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Hitelesítési adatok nem lettek megadva" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Error 403: Hozzáférés megtagadva" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Nincs meg a szükséges jogosultságod, hogy elérd ezt a funkciót" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Error 404: Erőforrás nem található" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "A kért erőforrás nem található a kiszolgálón" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Error 405: Metódus nincs engedélyezve" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "HTTP metódus nincs engedélyezve ezen az URL-n" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Error 408: Időtúllépés" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Időtúllépés a kiszolgálótól való adatlekérés közben" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Nem kezelt hibakód" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Hiba kód" @@ -7823,45 +7819,44 @@ msgstr "Ez törli az összerendelést a készlet tétel és a vonalkód között msgid "Unlink" msgstr "Leválasztás" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "Készlet tétel törlése" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Készlet bevételezése az adott helyre" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "Bevételezés" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Hiba a készlet áthelyezésekor" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "Nincs vonalkód beolvasva" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "Készlet tétel már beolvasva" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Készlet tétel már ezen a helyen van" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "Hozzáadott készlet tétel" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "Vonalkód nem egyezik a készlet tétellel" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Bevételezés az adott helyre" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "A vonalkód nem egyezik egy ismert hellyel sem" @@ -7971,55 +7966,63 @@ msgstr "Készletváltozatok engedélyezve" msgid "Open subassembly" msgstr "Al-gyártmány megnyitása" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "Helyettesítõk" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "Beszerzési ártartomány" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "Beszerzési átlagár" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "Alkatrészjegyzék megtekintése" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "Alkatrészjegyzék tétel jóváhagyása" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "Ez a sor jóvá lett hagyva" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "Helyettesítő alkatrészek szerkesztése" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "Alkatrészjegyzék tétel szerkesztése" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "Alkatrészjegyzék tétel törlése" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "Nem találhatók alkatrészjegyzék tételek" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "Biztos törölni akarod ezt az alkatrészjegyzék tételt?" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "Szükséges alkatrész" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "Örökölve a szülő alkatrészjegyzéktől" @@ -8129,12 +8132,12 @@ msgstr "Hely nincs megadva" msgid "No active build outputs found" msgstr "Nem található aktív gyártási kimenet" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Készlet foglalások szerkesztése" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Készlet foglalások törlése" @@ -8155,115 +8158,115 @@ msgstr "Vannak helyettesítő alkatrészek" msgid "Quantity Per" msgstr "Szükséges/db" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Lefoglalva" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "betöltés" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "Gyártási készlet" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "Készlet rendelés" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "Lefoglalt készlet" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Kiválasztott alkatrészek" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "Minden alkatrész lefoglalva" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "Minden kiválasztott alkatrész teljesen lefoglalva" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Készlet foglalás megerősítése" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "Készlet foglalása a gyártási utasításhoz" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "Nincs egyező készlethely" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "Nincs egyező készlet" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "Automatikus készlet foglalás" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "A készlet automatikusan lefoglalásra került ehhez a gyártási utasításhoz, a megadott feltételek szerint" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "Ha egy készlet hely meg van adva, akkor készlet csak arról a helyről lesz foglalva" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Ha a készlet helyettesíthetőnek minősül, akkor az első rendelkezésre álló helyről lesz lefoglalva" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Ha a helyettesítő készlet engedélyezve van, akkor ott az lesz használva ha az elsődleges alkatrésznek nincs készlete" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "Készlet tételek foglalása" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "Nincs a lekérdezéssel egyező gyártási utasítás" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "Kiválaszt" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "Gyártási utasítás megkésett" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "Nincs felhasználói információ" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "Nincs információ" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "Nincs lefoglalt alkatrész ehhez" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "Nincs gyártói alkatrész" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "Sablon alkatrész" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "Gyártmány alkatrész" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "Nem található paraméter" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "Paraméter törlése" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "Paraméter törlése" @@ -8455,14 +8458,18 @@ msgstr "Mező név" msgid "Select Columns" msgstr "Oszlopok kiválasztása" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "IGEN" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "NEM" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "Címkék nyomtatónak elküldve" @@ -8580,42 +8587,42 @@ msgstr "A kiszolgáló 400-as hibakódot adott vissza" msgid "Error requesting form data" msgstr "Form adat lekérése sikertelen" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" -msgstr "Cég azonosító" +msgstr "Cég ID" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" -msgstr "Készlet azonosító" +msgstr "Készlet ID" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" -msgstr "Hely azonosító" +msgstr "Hely ID" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" -msgstr "Gyártás azonosító" +msgstr "Gyártás ID" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" -msgstr "Rendelés azonosító" +msgstr "Rendelés ID" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" -msgstr "Szállítmány azonosító" +msgstr "Szállítmány ID" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" -msgstr "Kategória azonosító" +msgstr "Kategória ID" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" -msgstr "Gyártói alkatrész azonosító" +msgstr "Gyártói cikkszám" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" -msgstr "Beszállítói alkatrész azonosító" +msgstr "Beszállítói cikkszám" #: templates/js/translated/notification.js:228 msgid "Mark as unread" @@ -8709,7 +8716,7 @@ msgstr "Bevételezés megerősítése" msgid "Receive Purchase Order Items" msgstr "Beszerzési rendelés tételeinek bevételezése" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "Nem található beszerzési rendelés" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "Összesen" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "Egységár" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "Teljes ár" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "Ez a sortétel megkésett" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "Sortétel bevételezése" @@ -8996,125 +9003,133 @@ msgstr "Alkatrészjegyzék jóvá lett hagyva" msgid "Copy Bill of Materials" msgstr "Alkatrészjegyzék másolása" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Követésre kötelezett alkatrész" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "Virtuális alkatrész" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Értesítésre beállított alkatrész" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Értékesíthető alkatrész" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Nincs több változat" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "Alkatrész kapcsolatok törlése" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "Alkatrész kapcsolatok törlése" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "Nincs alkatrész" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "Nincs kategória" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "Alacsony készlet" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "Nincs szabad" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "Követésre kötelezett alkatrész" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "Virtuális alkatrész" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "Értesítésre beállított alkatrész" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "Értékesíthető alkatrész" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "Nincs több változat" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "Alkatrész kapcsolatok törlése" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "Alkatrész kapcsolatok törlése" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "Nincs alkatrész" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "Nincs szabad" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "Nincs kategória" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "Megjelenítés listaként" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "Megjelenítés rácsnézetként" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "Megjelenítés fában" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "Értesítésre beállított kategória" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "Elérési út" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "Nincs a lekérdezéssel egyező teszt sablon" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "Ez a teszt a szülő alkatrészhez lett felvéve" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "Teszt eredmény sablon szerkesztése" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "Teszt eredmény sablon törlése" -#: templates/js/translated/part.js:1859 +#: templates/js/translated/part.js:1914 #, python-brace-format msgid "No ${human_name} information found" msgstr "Nincs ${human_name} információ" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1969 #, python-brace-format msgid "Edit ${human_name}" msgstr "${human_name} szerkesztése" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "${human_name} törlése" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "Aktuális készlet" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "Az alkatrészhez nem áll rendelkezésre ütemezési információ" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "Ütemezett készlet mennyiség" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "Egységes ár" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "Egységes ár különbség" @@ -9188,13 +9203,13 @@ msgstr "Vevői rendelések kiválasztása" msgid "Sales Order(s) must be selected before printing report" msgstr "Vevői rendelés(eke)t ki kell választani a riport nyomtatás előtt" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" -msgstr "" +msgstr "Eredmények összezárása" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" -msgstr "" +msgstr "Eredmények eltávolítása" #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "Alkategóriákkal együtt" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "Értesítés beállítva" @@ -9723,17 +9738,21 @@ msgstr "Van IPN-je" #: templates/js/translated/table_filters.js:417 msgid "Part has internal part number" -msgstr "Van belső alkatrész azonosítója" +msgstr "Van belső cikkszáma" #: templates/js/translated/table_filters.js:422 msgid "Show active parts" msgstr "Aktív alkatrészek megjelenítése" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Felhasználható készlet" +msgid "In stock" +msgstr "Készleten" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "Elérhető" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "Beszerezhető" @@ -9835,6 +9854,10 @@ msgstr "Verzió információk" msgid "InvenTree demo mode" msgstr "Inventree demo mód" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "Összes értesítés és előzmény megjelenítése" @@ -9853,23 +9876,23 @@ msgstr "Jelentkezz be újra" #: templates/search.html:9 msgid "Show full search results" -msgstr "" +msgstr "Teljes találatok megjelenítése" #: templates/search.html:12 msgid "Clear search" -msgstr "" +msgstr "Keresőmező törlése" #: templates/search.html:16 msgid "Filter results" -msgstr "" +msgstr "Eredmények szűrése" #: templates/search.html:20 msgid "Close search menu" -msgstr "" +msgstr "Keresés menü bezárása" #: templates/search.html:35 msgid "No search results" -msgstr "" +msgstr "Nincs találat" #: templates/stats.html:9 msgid "Server" @@ -9913,7 +9936,7 @@ msgstr "Kiszolgáló állapota" #: templates/stats.html:55 msgid "Healthy" -msgstr "Normális" +msgstr "Rendben" #: templates/stats.html:57 msgid "Issues detected" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 418a729909..586458ded4 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -135,7 +135,7 @@ msgstr "" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "" @@ -154,8 +154,8 @@ msgstr "" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "" @@ -241,7 +241,7 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "" @@ -655,7 +655,7 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index dea8e64e57..cc2694af65 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -135,7 +135,7 @@ msgstr "Seleziona file da allegare" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Link" @@ -154,8 +154,8 @@ msgstr "Commento del file" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Scelta non valida" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Nome" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Nome" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Descrizione" @@ -241,7 +241,7 @@ msgstr "Descrizione (opzionale)" msgid "parent" msgstr "genitore" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Deve essere un numero valido" @@ -655,7 +655,7 @@ msgstr "Ordine di Produzione" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Posizione Di Origine" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Data di completamento" @@ -806,7 +806,7 @@ msgstr "Data di completamento" msgid "completed by" msgstr "Completato da" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Rilasciato da" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Responsabile" @@ -827,7 +827,7 @@ msgstr "Responsabile" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Collegamento esterno" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "Articolo in giacenza selezionato non trovato nel BOM" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Produzione" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Origine giacenza articolo" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Origine giacenza articolo" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Inserisci la quantità per l'output di compilazione" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "Distinta base (Bom)" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Data scadenza" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "In ritardo" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Completato" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Ordini di Vendita" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Inviato da" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Destinazione" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Posizione di destinazione non specificata" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "Lotto" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Creato" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Nessuna data di destinazione impostata" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Build Completata" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Ordina articoli richiesti" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Ordine Articoli" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Azioni di stampa" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "Stampa etichette" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Allegati" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Genera Note" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Modifica Note" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Assegnazione Completa" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Tutte le giacenze non tracciate sono state assegnate" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "Copia Template Parametri Categoria" msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "Template" msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Assemblaggio" @@ -1724,7 +1716,7 @@ 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:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Componente" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "Vendibile" @@ -1752,7 +1744,7 @@ msgstr "Gli articoli sono acquistabili per impostazione predefinita" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Tracciabile" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "Prezzo" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Carica file" @@ -2492,7 +2484,7 @@ msgstr "Articoli importati" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Passaggio Precedente" @@ -2625,7 +2617,7 @@ msgstr "Seleziona Produttore" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "Codice articolo produttore (MPN)" @@ -2655,7 +2647,7 @@ msgstr "Nome parametro" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Valore" @@ -2663,10 +2655,10 @@ msgstr "Valore" msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "Unità" @@ -2685,7 +2677,7 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Fornitore" @@ -2696,7 +2688,7 @@ msgstr "Seleziona fornitore" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "SKU" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "Descrizione articolo fornitore" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Nota" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "costo base" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" @@ -2741,7 +2733,7 @@ msgstr "Confezionamento" msgid "Part packaging" msgstr "Imballaggio del pezzo" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "multiplo" @@ -2827,129 +2819,129 @@ msgstr "Telefono" msgid "Upload Image" msgstr "Carica immagine" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Articoli fornitore" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Crea nuovo fornitore" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "Nuovo fornitore articolo" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "Opzioni" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Articoli ordinati" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Cancella articoli" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Cancella articoli" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Giacenza Fornitore" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Ordine di acquisto" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "Elimina articoli fornitore?" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati" @@ -2966,7 +2958,7 @@ msgstr "Produttori" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Articoli ordinati" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "Fornitori" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "Elimina articolo fornitore" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "Elimina" @@ -3009,12 +3001,12 @@ msgstr "Elimina" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Parametri" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "Elimina il parametro" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "Aggiungi parametro" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "Fornitore articolo in giacenza" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Crea nuova allocazione magazzino" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "Ordini articoli fornitore" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "Ordine Articolo" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Magazzino" @@ -3163,7 +3155,7 @@ msgstr "Prezzi" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "Clienti" msgid "New Customer" msgstr "Nuovo cliente" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Aziende" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "Articolo Fornitore" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "Ricevere articoli" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "Seleziona l'articolo del fornitore" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "Specifica la posizione per lo stock iniziale" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "Disponibilità in magazzino" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "Ordinato" @@ -4127,13 +4121,13 @@ msgstr "Keywords predefinite" msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Categorie Articolo" @@ -4144,7 +4138,7 @@ msgstr "Categorie Articolo" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "Il numero di serie più recente è" msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "Nome articolo" @@ -4208,12 +4202,12 @@ msgstr "Parole Chiave" msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "Categoria" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "Categoria articolo" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "IPN - Numero di riferimento interno" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "Numero di revisione o di versione" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "Revisione" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "Codice Articolo" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "Assegnazione Ordine Di Vendita" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "Articoli correlati" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "Distinta base" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "Fornitori articoli" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "Componenti Produttori" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "Articoli correlati" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "Inattivo" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "Costo Totale" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "Imposta categoria per i seguenti articoli" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "Nessuna giacenza" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "Elimina al esaurimento" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "Sottoallocazioni" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "Posizioni magazzino" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "Modifica Password" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "Modifica" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "Aggiungi allegato" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "È necessario riavviare il server" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "È stata modificata un'impostazione che richiede un riavvio del server" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "Contatta l'amministratore per maggiori informazioni" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "Quantità richiesta" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Disponibile" @@ -7674,67 +7670,67 @@ msgstr "Il server remoto deve essere accessibile" msgid "Remote image must not exceed maximum allowable file size" msgstr "L'immagine remota non deve superare la dimensione massima consentita del file" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Controlla gli elementi in magazzino nella posizione" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Elemento in giacenza già in questa posizione" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Controlla Nella Posizione" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "Il codice a barre non corrisponde a una posizione valida" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "Posizione non specificata" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Modifica allocazione magazzino" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Elimina posizione giacenza" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Seleziona Articoli" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "Specificare il quantitativo assegnato allo stock" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Conferma l'assegnazione della giacenza" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "Nessuna posizione di magazzino corrispondente" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "Modifica parametro" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "Elimina il parametro" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "Modifica parametro" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "Elimina Parametri" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "SÌ" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "NO" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "ID azienda" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "ID Giacenza" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "ID Posizione" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "ID Ordine" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "Id Categoria" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "ID articolo produttore" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "Totale" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "Prezzo Unitario" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "Prezzo Totale" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Parte tracciabile" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "Parte virtuale" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Parte sottoscritta" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Parte vendibile" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Nessuna variante trovata" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "Elimina relazione tra i componenti" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "Nessun articolo trovato" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "Nessuna categoria" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "In esaurimento" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "Parte tracciabile" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "Parte virtuale" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "Parte sottoscritta" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "Parte vendibile" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "Nessuna variante trovata" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "Elimina relazione tra i componenti" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "Nessun articolo trovato" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "Nessuna categoria" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "Visualizza come elenco" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "Visualizza come griglia" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "Visualizza come struttura ad albero" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "Categoria sottoscritta" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "Percorso" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "Nessun modello di test corrispondente" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "Modificare il risultato del test" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "Cancellare il risultato del test" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "Modifica ${human_name}" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "Elimina ${human_name}" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "Prezzo Singolo" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "Includi sottocategorie" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "Sottoscritto" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "Visualizza articoli attivi" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Disponibilità" +msgid "In stock" +msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "Acquistabile" @@ -9835,6 +9854,10 @@ msgstr "Informazioni Su InvenTree" msgid "InvenTree demo mode" msgstr "Modalità demo InvenTree" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 07b4bf9602..9c5fda193c 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -135,7 +135,7 @@ msgstr "添付ファイルを選択" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "" @@ -154,8 +154,8 @@ msgstr "ファイルコメント" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "無効な選択です" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "お名前" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "お名前" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "説明" @@ -241,7 +241,7 @@ msgstr "説明 (オプション)" msgid "parent" msgstr "親" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" @@ -655,7 +655,7 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "パーツを割り当てるためにビルドする" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "注文必須パーツ" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "パーツの注文" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "テンプレート" msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "アセンブリ" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "コンポーネント" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "パーツはデフォルトで販売可能です" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "追跡可能" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "サプライヤー・パーツ" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "新しいサプライヤー・パーツを作成" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "新しいサプライヤー・パーツ" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "パーツの注文" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "パーツを削除" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "パーツを削除" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "メーカー・パーツ" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "新しいメーカー・パーツを作成" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "新しいメーカ―・パーツ" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "パーツの注文" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index e72ed07028..411f9f4428 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -135,7 +135,7 @@ msgstr "첨부할 파일을 선택하세요" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "링크" @@ -154,8 +154,8 @@ msgstr "" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "이름" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "이름" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "설명" @@ -241,7 +241,7 @@ msgstr "설명 (선택 사항)" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "유효한 숫자여야 합니다" @@ -655,7 +655,7 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "외부 링크" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "수량 값은 0보다 커야 합니다" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "판매 가능" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "파일 업로드" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "SKU" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "전화번호" msgid "Upload Image" msgstr "이미지 업로드" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "삭제" @@ -3009,12 +3001,12 @@ msgstr "삭제" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "신규 고객" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "경고" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "데이터" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "부품 명세서" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "링크 추가" msgid "Add Attachment" msgstr "첨부파일 추가" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "서버 재시작 필요" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "오류 408: 시간 초과" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "선택" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "예" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "아니오" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "단가" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "부품 명세서 복사" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index d9aa3519b1..a85dc27250 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -135,7 +135,7 @@ msgstr "Bestand als bijlage selecteren" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Link" @@ -154,8 +154,8 @@ msgstr "Bijlage opmerking" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Ongeldige keuze" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Naam" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Naam" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Omschrijving" @@ -241,7 +241,7 @@ msgstr "Omschrijving (optioneel)" msgid "parent" msgstr "overkoepelend" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" @@ -655,7 +655,7 @@ msgstr "Productie-opdracht" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Productie-opdracht referentie" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Korte beschrijving van de build" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Bovenliggende bouw" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Productie-opdracht waar dit product aan is toegewezen" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "Productie-opdracht waar dit product aan is toegewezen" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Verkooporder waar dit product aan is toegewezen" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Bron Locatie" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Opleveringsdatum" @@ -806,7 +806,7 @@ msgstr "Opleveringsdatum" msgid "completed by" msgstr "voltooid door" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "Gebruiker die de productie-opdracht heeft gegeven" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Verantwoordelijke" @@ -827,7 +827,7 @@ msgstr "Verantwoordelijke" msgid "User responsible for this build order" msgstr "Gebruiker verantwoordelijk voor deze productie-opdracht" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Externe Link" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Product" @@ -911,7 +911,7 @@ msgstr "Bouw om onderdelen toe te wijzen" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Bron voorraadartikel" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Bron voorraadartikel" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Voer hoeveelheid in voor build-output" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Voorraad is niet volledig toegewezen aan deze productie-opdracht" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Streefdatum" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "Achterstallig" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Voltooid" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Verkooporder" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Uitgegeven door" @@ -1295,32 +1295,36 @@ msgstr "Productie-opdracht kan niet worden voltooid omdat er onvoltooide product msgid "Are you sure you wish to cancel this build?" msgstr "Weet je zeker dat je de bouw wilt annuleren?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Build details" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Voorraadbron" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Bestemming" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Bestemmingslocatie niet opgegeven" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Toegewezen onderdelen" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "Toegewezen onderdelen" msgid "Batch" msgstr "Batch" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Gecreëerd" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Geen doeldatum ingesteld" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Voorraad toewijzen aan Product" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "Niet toegewezen voorraad" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Niet toegewezen voorraad" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Onderdelen bestellen" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Geselecteerde items toewijzen" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Afdrukacties" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "Labels afdrukken" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Bijlagen" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Bouw notities" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Notities Bewerken" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Samenstelling" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere delen worden samengesteld" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "Fabrikant selecteren" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "MPN" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Fabrikant onderdelen" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Maak nieuw fabrikant onderdeel" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "Nieuw fabrikant onderdeel" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "Fabrikanten" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "Toewijzingen verkoopopdracht" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "Nieuw stuklijstitem" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "Samenstellingen" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "Productie-opdracht toewijzingen" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "Fabrikanten" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "Fabrikant onderdeel verwijderen" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "Sublocaties" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "Voorraadlocaties" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Beschikbaar" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "Locatie is niet opgegeven" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Voorraadtoewijzing bewerken" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Voorraadtoewijzing verwijderen" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Toegewezen" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "Voorraad toewijzen" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Onderdelen selecteren" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "Er moet op zijn minst één onderdeel toegewezen worden" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruiken)" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Bevestig de voorraadtoewijzing" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "Geen fabricage onderdelen gevonden" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "Samengesteld onderdeel" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "Onderdeelnummer fabrikant" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index dc4d97b9ee..1dade9d56e 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -135,7 +135,7 @@ msgstr "Velg fil å legge ved" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Lenke" @@ -154,8 +154,8 @@ msgstr "Kommentar til fil" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Ugyldig valg" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Navn" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Navn" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Beskrivelse" @@ -241,7 +241,7 @@ msgstr "Beskrivelse (valgfritt)" msgid "parent" msgstr "overkategori" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Nummer må være gyldig" @@ -655,7 +655,7 @@ msgstr "Build ordre" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Bygg ordrereferanse" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Kort beskrivelse av build" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet build" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Build order som denne build er tildelt til" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "Build order som denne build er tildelt til" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Salgorder som denne build er tildelt til" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Kilde plassering" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Fullført dato" @@ -806,7 +806,7 @@ msgstr "Fullført dato" msgid "completed by" msgstr "fullført av" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Utstedt av" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "Brukeren som utstede denne prosjekt order" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Ansvarlig" @@ -827,7 +827,7 @@ msgstr "Ansvarlig" msgid "User responsible for this build order" msgstr "Bruker ansvarlig for denne prosjekt order" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Ekstern link" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "Valgt lagevare ikke funnet i BOM" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Prosjekt" @@ -911,7 +911,7 @@ msgstr "Bygge for å tildele deler" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Kilde lagervare" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Kilde lagervare" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Angi antall for build utgang" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "BOM varer" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Måldato" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Fullført" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Salgsorder" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Utstedt av" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "Er du sikker du vil kansellere?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Lager kilde" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Lagervare kan hentes fra alle tilgengelige steder." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Destinasjon" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Målplassering er ikke spesifisert" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Tildelte deler" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "Tildelte deler" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Opprettet" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Ingen måldato satt" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "Fjern lager allokering" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Fjern lager allokering" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Tildele lager" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Bestill nødvendige deler" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Bestill deler" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Tildel valgte varer" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Vedlegg" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Rediger notater" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Tildeling fullført" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Alle usporbar lagervarer har tildelt" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "Kopier kategori parametermaler ved oppretting av en del" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "Mal" msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Montering" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Komponent" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "Salgbar" @@ -1752,7 +1744,7 @@ msgstr "Deler er salgbare som standard" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Sporbar" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Last opp fil" @@ -2492,7 +2484,7 @@ msgstr "Deler importert" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Forrige trinn" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "Telefon" msgid "Upload Image" msgstr "Last opp bilde" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Leverandør deler" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Oprett ny leverandørdel" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "Ny leverandørdel" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "Valgmuligheter" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Bestill deler" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Slett deler" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Slett deler" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Produsentdeler" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Opprett ny produsentdeler" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "Ny produsentdel" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Leverandør lager" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Bestillingsorder" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Opprett ny bestillingsorder" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Ny bestillingsorder" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "Salgsordre" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Opprett ny salgsordre" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Ny salgsorder" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "Tildelt lagervare" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Notater til firma" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "Slett leverandørdeler?" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "Alle valgte leverandørdeler vil slettes" @@ -2966,7 +2958,7 @@ msgstr "Produsenter" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Bestill del" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "Leverandører" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "Slett leverandørdeler" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "Slett" @@ -3009,12 +3001,12 @@ msgstr "Slett" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 4220c3ea1a..17bfffdd6f 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -135,7 +135,7 @@ msgstr "Wybierz plik do załączenia" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Łącze" @@ -154,8 +154,8 @@ msgstr "Komentarz pliku" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Błędny wybór" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Nazwa" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Nazwa" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Opis" @@ -241,7 +241,7 @@ msgstr "Opis (opcjonalny)" msgid "parent" msgstr "nadrzędny" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" @@ -655,7 +655,7 @@ msgstr "Zlecenie Budowy" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Krótki opis budowy" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Budowa nadrzędna" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,20 +707,20 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 msgid "Part" -msgstr "Część" +msgstr "Komponent" #: build/models.py:235 msgid "Select part to build" @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Lokalizacja źródła" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Data zakończenia" @@ -806,7 +806,7 @@ msgstr "Data zakończenia" msgid "completed by" msgstr "zrealizowane przez" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Wydany przez" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Odpowiedzialny" @@ -827,7 +827,7 @@ msgstr "Odpowiedzialny" msgid "User responsible for this build order" msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Link Zewnętrzny" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Budowa" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Lokalizacja magazynowania przedmiotu" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Lokalizacja magazynowania przedmiotu" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Data docelowa" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "Zaległe" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Zakończone" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Zamówienie zakupu" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Dodane przez" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "Czy na pewno przerwać tę budowę?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Szczegóły budowy" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Źródło magazynu" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Przeznaczenie" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Nie określono lokalizacji docelowej" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "Partia" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Utworzony" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Budowa niezakończona" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Przydziel zapasy do budowy" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "Cofnij przydział zapasów" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Cofnij przydział zapasów" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "Automatyczne przypisywanie" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Przydziel zapasy" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Zamów wymagane komponenty" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" -msgstr "Zamów części" +msgstr "Zamów komponent" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "Drukuj etykiety" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Załączniki" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Notatki tworzenia" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Edytuj Notatki" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "Nowe zlecenie budowy" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "Szablon" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Złożenie" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Komponent" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "Możliwość sprzedaży" @@ -1752,7 +1744,7 @@ msgstr "Części są domyślnie z możliwością sprzedaży" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Możliwość śledzenia" @@ -2354,9 +2346,9 @@ msgstr "Format daty" msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" -msgstr "" +msgstr "Planowanie komponentów" #: common/models.py:1372 msgid "Display part scheduling information" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "Cena" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Wyślij plik" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Poprzedni krok" @@ -2625,13 +2617,13 @@ msgstr "Wybierz producenta" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "MPN" #: company/models.py:343 templates/js/translated/part.js:247 msgid "Manufacturer Part Number" -msgstr "Numer producenta" +msgstr "Numer producenta komponentu" #: company/models.py:349 msgid "URL for external manufacturer part link" @@ -2646,7 +2638,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" -msgstr "Część producenta" +msgstr "Komponent producenta" #: company/models.py:416 msgid "Parameter name" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Wartość" @@ -2663,10 +2655,10 @@ msgstr "Wartość" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "Jednostki" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Dostawca" @@ -2696,7 +2688,7 @@ msgstr "Wybierz dostawcę" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "SKU" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Uwaga" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "Opakowanie" msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "wielokrotność" @@ -2827,131 +2819,131 @@ msgstr "Telefon" msgid "Upload Image" msgstr "Załaduj obrazek" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Komponenty dostawcy" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Utwórz nowego dostawcę części" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "Nowy dostawca części" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "Opcje" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" -msgstr "Zamów części" +msgstr "Zamów komponenty" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Usuń części" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Usuń części" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Części producenta" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Utwórz nową część producenta" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "Nowa część producenta" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Zapasy dostawcy" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Zamówienia zakupu" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Utwórz nowe zamówienie zakupu" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Nowe zamówienie zakupu" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Notatki firmy" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" -msgstr "" +msgstr "Usunąć komponenty dostawcy?" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" -msgstr "" +msgstr "Wszystkie wybrane komponenty dostawcy zostaną usunięte" #: company/templates/company/index.html:8 msgid "Supplier List" @@ -2966,24 +2958,24 @@ msgstr "Producenci" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" -msgstr "Zamów część" +msgstr "Zamów komponent" #: company/templates/company/manufacturer_part.html:40 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" -msgstr "Edytuj część producenta" +msgstr "Edytuj komponent producenta" #: company/templates/company/manufacturer_part.html:44 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" -msgstr "Usuń cześć producenta" +msgstr "Usuń komponent producenta" #: company/templates/company/manufacturer_part.html:66 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" -msgstr "Część wewnętrzna" +msgstr "Komponent wewnętrzny" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "Dostawcy" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "Usuń" @@ -3009,12 +3001,12 @@ msgstr "Usuń" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Parametry" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "Usuń parametry" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "Dodaj parametr" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Utwórz nowy towar" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "Nowy towar" @@ -3092,9 +3084,9 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" -msgstr "" +msgstr "Zamów komponent" #: company/templates/company/supplier_part.html:179 #: part/templates/part/prices.html:7 @@ -3137,10 +3129,10 @@ msgstr "Ostatnio aktualizowane" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Stan" @@ -3163,7 +3155,7 @@ msgstr "Cennik" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "Klienci" msgid "New Customer" msgstr "Nowy klient" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Firmy" @@ -3436,7 +3428,7 @@ msgstr "Zamówienie" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "Zlecenie zakupu" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "Odebrane" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "Linia" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "Przesyłka" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "Wybierz dostawcę części" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "Prześlij plik do zamówienia zakupu" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "Dodaj element zamówienia" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "Otrzymane elementy" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Notatki zamówień" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "Ostrzeżenie" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "Oczekujące przesyłki" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "Akcje" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "Nowa wysyłka" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "Ta opcja musi być zaznaczona" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "Musi być większe niż zero" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "Musi być prawidłową ilością" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "To pole jest wymagane" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "Dostępna ilość" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "W Zamówieniu" @@ -4117,7 +4111,7 @@ msgstr "" #: part/models.py:113 msgid "Default location for parts in this category" -msgstr "" +msgstr "Domyślna lokalizacja dla komponentów w tej kategorii" #: part/models.py:116 msgid "Default keywords" @@ -4127,13 +4121,13 @@ msgstr "Domyślne słowa kluczowe" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "Kategoria części" +msgstr "Kategoria komponentu" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Kategorie części" @@ -4144,7 +4138,7 @@ msgstr "Kategorie części" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,9 +4169,9 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" -msgstr "Nazwa części" +msgstr "Nazwa komponentu" #: part/models.py:818 msgid "Is Template" @@ -4197,7 +4191,7 @@ msgstr "Wariant" #: part/models.py:836 msgid "Part description" -msgstr "Opis części" +msgstr "Opis komponentu" #: part/models.py:841 part/templates/part/category.html:86 #: part/templates/part/part_base.html:322 @@ -4208,12 +4202,12 @@ msgstr "Słowa kluczowe" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "Kategoria" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "IPN" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "Wersja" @@ -4274,7 +4268,7 @@ msgstr "" #: part/models.py:960 msgid "Can this part be built from other parts?" -msgstr "Czy ta część może być zbudowana z innych części?" +msgstr "Czy ten komponent może być zbudowany z innych komponentów?" #: part/models.py:966 msgid "Can this part be used to build other parts?" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "Tworzenie użytkownika" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Wymagane" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "Dane" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 -msgid "Part ID" -msgstr "Numer części" - #: part/models.py:2661 +msgid "Part ID" +msgstr "ID komponentu" + +#: part/models.py:2662 msgid "Unique part ID value" -msgstr "" +msgstr "Unikalny wartość ID komponentu" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" -msgstr "Nazwa części" - -#: part/models.py:2668 -msgid "Part IPN" -msgstr "IPN części" +msgstr "Nazwa komponentu" #: part/models.py:2669 +msgid "Part IPN" +msgstr "IPN komponentu" + +#: part/models.py:2670 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "Poziom" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Opcjonalne" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "Dziedziczone" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "Część 1" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "Część 2" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "Usuń istniejące dane" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "Wyczyść istniejący BOM" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "Nie podano ilości" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "Nieprawidłowa ilość" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "Nowa część może być duplikatem tych istniejących części" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Zapasy części" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "Warianty Części" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "Utwórz nowy wariant" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "Nowy wariant" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "Powiązane części" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "Dodaj powiązane" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "Zestawienie materiałowe" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "Akcje eksportu" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Eksportuj BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "Drukuj raport BOM" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "Wgraj BOM" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "Weryfikuj BOM" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "Nowa część w BOM" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "Dodaj część do BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "Złożenia" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "Dostawcy Części" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "Producenci części" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "Powiązane części" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "Dodaj powiązaną część" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "Edytuj notatki części" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "Część jest wirtualna (nie fizyczna)" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "Nieaktywny" @@ -5164,12 +5158,13 @@ msgstr "Wymagane do zamówień sprzedaży" msgid "Allocated to Sales Orders" msgstr "Przypisane do zamówień sprzedaży" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "Całkowity Koszt" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "Brak dostępnych cen dostawców" @@ -5342,7 +5337,7 @@ msgstr "Pokaż cenę sprzedaży" msgid "Calculation parameters" msgstr "Parametry obliczeniowe" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "Koszty dostawcy" @@ -5384,9 +5379,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "Brak w magazynie" @@ -5746,7 +5740,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5961,7 +5955,7 @@ msgstr "Usuń po wyczerpaniu" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6180,48 +6174,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6481,7 +6475,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "Lokacje stanu magazynowego" @@ -7120,7 +7114,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7604,15 +7599,15 @@ msgstr "Dodaj link" msgid "Add Attachment" msgstr "Dodaj załącznik" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "Wymagane ponowne uruchomienie serwera" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "Zmieniono opcję konfiguracji, która wymaga ponownego uruchomienia serwera" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "Skontaktuj się z administratorem systemu w celu uzyskania dalszych informacji" @@ -7634,14 +7629,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "Wymagana ilość" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Dostępne" @@ -7679,67 +7675,67 @@ msgstr "Zdalny serwer musi być dostępny" msgid "Remote image must not exceed maximum allowable file size" msgstr "Zewnętrzne zdjęcie nie może przekraczać maksymalnego dopuszczalnego rozmiaru pliku" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Brak odpowiedzi" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "Brak odpowiedzi z serwera InvenTree" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Błąd 400: Błędne żądanie" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "Żądanie interfejsu API zwróciło kod błędu 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Błąd 401: Nieuwierzytelniony" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Dane uwierzytelniające nie zostały dostarczone" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Błąd 403: Odmowa dostępu" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Nie masz uprawnień wymaganych do dostępu do tej funkcji" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Błąd 404: Nie znaleziono zasobu" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "Żądany zasób nie mógł być zlokalizowany na serwerze" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Błąd 405: Metoda nie jest dozwolona" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "Metoda HTTP nie jest dozwolona pod tym adresem URL" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Błąd 408: Przekroczony limit czasu" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Limit czasu połączenia podczas żądania danych z serwera" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Nieobsługiwany kod błędu" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Kod błędu" @@ -7828,45 +7824,44 @@ msgstr "" msgid "Unlink" msgstr "Rozłącz" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "Sprawdź" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Błąd podczas przenoszenia stanów magazynowych" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7976,55 +7971,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "Zobacz BOM" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8134,12 +8137,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8160,115 +8163,115 @@ msgstr "" msgid "Quantity Per" msgstr "Ilość za" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Przydzielono" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "ładowanie" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Wybierz części" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Potwierdź przydział zapasów" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "Wybierz" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "Brak informacji o użytkowniku" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "Brak informacji" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8333,34 +8336,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "Nie znaleziono parametrów" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "Edytuj Parametr" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "Usuń parametr" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "Edytuj Parametr" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "Usuń parametr" @@ -8460,14 +8463,18 @@ msgstr "Nazwa pola" msgid "Select Columns" msgstr "Wybór Kolumn" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "TAK" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "Nie" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8585,40 +8592,40 @@ msgstr "Serwer zwrócił kod błędu 400" msgid "Error requesting form data" msgstr "Błąd podczas żądania danych formularza" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "ID firmy" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "ID lokalizacji" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "ID zamówienia" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "ID wysyłki" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "ID kategorii" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "ID części dostawcy" @@ -8714,7 +8721,7 @@ msgstr "Potwierdź odbiór elementów" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8743,7 +8750,7 @@ msgid "Total" msgstr "Razem" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "Cena jednostkowa" @@ -8752,11 +8759,11 @@ msgid "Total Price" msgstr "Cena całkowita" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -9001,125 +9008,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Obserwowane części" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Nie znaleziono wariantów" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "Nie znaleziono części" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "Brak kategorii" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "Obserwowane części" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "Nie znaleziono wariantów" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "Nie znaleziono części" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "Brak kategorii" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "Wyświetl jako listę" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "Wyświetl jako siatkę" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "Wyświetl jako drzewo" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "Obserwowana kategoria" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "Ścieżka" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 +#: templates/js/translated/part.js:1914 #, python-brace-format msgid "No ${human_name} information found" msgstr "Nie znaleziono informacji o ${human_name}" -#: templates/js/translated/part.js:1914 +#: templates/js/translated/part.js:1969 #, python-brace-format msgid "Edit ${human_name}" msgstr "Edytuj ${human_name}" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "Usuń ${human_name}" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "Cena jednostkowa" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9193,11 +9208,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9570,7 +9585,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "Obesrwowane" @@ -9735,10 +9750,14 @@ msgid "Show active parts" msgstr "Pokaż aktywne części" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Zapas dostępny" +msgid "In stock" +msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "Możliwość zakupu" @@ -9840,6 +9859,10 @@ msgstr "O InvenTree" msgid "InvenTree demo mode" msgstr "Tryb demonstracyjny InvenTree" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index 0d14db5c35..1ccdefbe05 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -135,7 +135,7 @@ msgstr "" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "" @@ -154,8 +154,8 @@ msgstr "" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "" @@ -241,7 +241,7 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "" @@ -655,7 +655,7 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.mo b/InvenTree/locale/pt_br/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..2c90dd0c81 Binary files /dev/null and b/InvenTree/locale/pt_br/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po new file mode 100644 index 0000000000..f4ee57bc48 --- /dev/null +++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po @@ -0,0 +1,7859 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-26 01:04+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: InvenTree/api.py:57 +msgid "API endpoint not found" +msgstr "" + +#: InvenTree/api.py:103 +msgid "No action specified" +msgstr "" + +#: InvenTree/api.py:118 +msgid "No matching action found" +msgstr "" + +#: InvenTree/fields.py:100 +msgid "Enter date" +msgstr "" + +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +msgid "Confirm" +msgstr "" + +#: InvenTree/forms.py:142 +msgid "Confirm delete" +msgstr "" + +#: InvenTree/forms.py:143 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:174 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:175 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:182 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:183 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:215 +msgid "Select Category" +msgstr "" + +#: InvenTree/forms.py:236 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:240 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:260 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/helpers.py:442 +#, python-brace-format +msgid "Duplicate serial: {sn}" +msgstr "" + +#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 +#: stock/views.py:993 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/helpers.py:452 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:474 InvenTree/helpers.py:477 InvenTree/helpers.py:480 +#: InvenTree/helpers.py:504 +#, python-brace-format +msgid "Invalid group: {g}" +msgstr "" + +#: InvenTree/helpers.py:518 +#, python-brace-format +msgid "Invalid/no group {group}" +msgstr "" + +#: InvenTree/helpers.py:524 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:528 +#, python-brace-format +msgid "Number of unique serial number ({s}) must match quantity ({q})" +msgstr "" + +#: InvenTree/models.py:185 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:186 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:197 stock/models.py:2173 +msgid "Attachment" +msgstr "" + +#: InvenTree/models.py:198 +msgid "Select file to attach" +msgstr "" + +#: InvenTree/models.py:204 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:873 +#: report/templates/report/inventree_build_order_base.html:165 +msgid "Link" +msgstr "" + +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:641 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:208 +msgid "Comment" +msgstr "" + +#: InvenTree/models.py:208 +msgid "File comment" +msgstr "" + +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 +#: common/models.py:1397 common/models.py:1618 common/models.py:1619 +#: common/models.py:1848 common/models.py:1849 part/models.py:2374 +#: part/models.py:2394 +#: report/templates/report/inventree_test_report_base.html:96 +msgid "User" +msgstr "" + +#: InvenTree/models.py:218 +msgid "upload date" +msgstr "" + +#: InvenTree/models.py:241 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:264 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:274 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:277 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:284 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:291 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:326 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:177 +#: templates/InvenTree/notifications/notifications.html:84 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin_settings.html:23 +#: templates/InvenTree/settings/settings.html:320 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:349 build/models.py:209 +#: build/templates/build/detail.html:24 company/models.py:354 +#: company/models.py:570 company/templates/company/company_base.html:68 +#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/supplier_part.html:73 label/models.py:119 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 +#: part/templates/part/set_category.html:14 report/models.py:190 +#: report/models.py:553 report/models.py:592 +#: report/templates/report/inventree_build_order_base.html:118 +#: stock/templates/stock/location.html:94 +#: templates/InvenTree/settings/plugin_settings.html:33 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:350 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:358 +msgid "parent" +msgstr "" + +#: InvenTree/serializers.py:65 part/models.py:2877 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:299 +msgid "Filename" +msgstr "" + +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "" + +#: InvenTree/serializers.py:632 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "" + +#: InvenTree/settings.py:674 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:675 +msgid "German" +msgstr "" + +#: InvenTree/settings.py:676 +msgid "Greek" +msgstr "" + +#: InvenTree/settings.py:677 +msgid "English" +msgstr "" + +#: InvenTree/settings.py:678 +msgid "Spanish" +msgstr "" + +#: InvenTree/settings.py:679 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:680 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:681 +msgid "French" +msgstr "" + +#: InvenTree/settings.py:682 +msgid "Hebrew" +msgstr "" + +#: InvenTree/settings.py:683 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:684 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:685 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:689 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:690 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:691 +msgid "Portugese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:694 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:695 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:696 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:697 +msgid "Chinese" +msgstr "" + +#: InvenTree/status.py:110 +msgid "Background worker check failed" +msgstr "" + +#: InvenTree/status.py:114 +msgid "Email backend not configured" +msgstr "" + +#: InvenTree/status.py:117 +msgid "InvenTree system health checks failed" +msgstr "" + +#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 +#: InvenTree/status_codes.py:323 +msgid "Pending" +msgstr "" + +#: InvenTree/status_codes.py:102 +msgid "Placed" +msgstr "" + +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 +#: order/templates/order/order_base.html:128 +#: order/templates/order/sales_order_base.html:132 +msgid "Complete" +msgstr "" + +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:325 +msgid "Cancelled" +msgstr "" + +#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:187 +msgid "Lost" +msgstr "" + +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 +#: InvenTree/status_codes.py:189 +msgid "Returned" +msgstr "" + +#: InvenTree/status_codes.py:143 order/models.py:997 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:183 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:184 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:185 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:186 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:188 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:278 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:284 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:287 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:290 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:293 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:296 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:303 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:305 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:306 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Production" +msgstr "" + +#: InvenTree/validators.py:25 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:53 +msgid "Invalid character in part name" +msgstr "" + +#: InvenTree/validators.py:66 +#, python-brace-format +msgid "IPN must match regex pattern {pat}" +msgstr "" + +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "" + +#: InvenTree/validators.py:116 +#, python-brace-format +msgid "Illegal character in name ({x})" +msgstr "" + +#: InvenTree/validators.py:137 InvenTree/validators.py:153 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:155 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:538 +msgid "Delete Item" +msgstr "" + +#: InvenTree/views.py:587 +msgid "Check box to confirm item deletion" +msgstr "" + +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:632 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:883 templates/navbar.html:144 +msgid "System Information" +msgstr "" + +#: barcodes/api.py:55 barcodes/api.py:156 +msgid "Must provide barcode_data parameter" +msgstr "" + +#: barcodes/api.py:132 +msgid "No match found for barcode data" +msgstr "" + +#: barcodes/api.py:134 +msgid "Match found for barcode data" +msgstr "" + +#: barcodes/api.py:159 +msgid "Must provide stockitem parameter" +msgstr "" + +#: barcodes/api.py:166 +msgid "No matching stock item found" +msgstr "" + +#: barcodes/api.py:197 +msgid "Barcode already matches Stock Item" +msgstr "" + +#: barcodes/api.py:201 +msgid "Barcode already matches Stock Location" +msgstr "" + +#: barcodes/api.py:205 +msgid "Barcode already matches Part" +msgstr "" + +#: barcodes/api.py:211 barcodes/api.py:223 +msgid "Barcode hash already matches Stock Item" +msgstr "" + +#: barcodes/api.py:229 +msgid "Barcode associated with Stock Item" +msgstr "" + +#: build/forms.py:20 +msgid "Confirm cancel" +msgstr "" + +#: build/forms.py:20 build/views.py:62 +msgid "Confirm build cancellation" +msgstr "" + +#: build/models.py:135 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:139 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_base.html:106 +msgid "Build Order" +msgstr "" + +#: build/models.py:140 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:91 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: templates/InvenTree/search.html:139 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 +msgid "Build Orders" +msgstr "" + +#: build/models.py:200 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:201 order/models.py:213 order/models.py:563 +#: order/models.py:843 part/models.py:2788 +#: part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:92 +msgid "Reference" +msgstr "" + +#: build/models.py:212 +msgid "Brief description of the build" +msgstr "" + +#: build/models.py:221 build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:87 +msgid "Parent Build" +msgstr "" + +#: build/models.py:222 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:227 build/templates/build/build_base.html:77 +#: build/templates/build/detail.html:29 company/models.py:706 +#: order/models.py:912 order/models.py:986 +#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2763 part/models.py:3053 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:89 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:80 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:16 +msgid "Part" +msgstr "" + +#: build/models.py:235 +msgid "Select part to build" +msgstr "" + +#: build/models.py:240 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:244 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:249 build/serializers.py:730 +msgid "Source Location" +msgstr "" + +#: build/models.py:253 +msgid "" +"Select location to take stock from for this build (leave blank to take from " +"any stock location)" +msgstr "" + +#: build/models.py:258 +msgid "Destination Location" +msgstr "" + +#: build/models.py:262 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:266 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:269 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:273 +msgid "Completed items" +msgstr "" + +#: build/models.py:275 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:279 +msgid "Build Status" +msgstr "" + +#: build/models.py:283 +msgid "Build status code" +msgstr "" + +#: build/models.py:287 build/serializers.py:218 order/serializers.py:272 +#: stock/models.py:645 +msgid "Batch Code" +msgstr "" + +#: build/models.py:291 build/serializers.py:219 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:331 +msgid "Creation Date" +msgstr "" + +#: build/models.py:298 order/models.py:585 +msgid "Target completion date" +msgstr "" + +#: build/models.py:299 +msgid "" +"Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:302 order/models.py:255 +msgid "Completion Date" +msgstr "" + +#: build/models.py:308 +msgid "completed by" +msgstr "" + +#: build/models.py:316 +msgid "Issued by" +msgstr "" + +#: build/models.py:317 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:325 build/templates/build/build_base.html:190 +#: build/templates/build/detail.html:115 order/models.py:143 +#: order/templates/order/order_base.html:170 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 +#: report/templates/report/inventree_build_order_base.html:159 +msgid "Responsible" +msgstr "" + +#: build/models.py:326 +msgid "User responsible for this build order" +msgstr "" + +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:102 +#: company/templates/company/supplier_part.html:126 +#: part/templates/part/part_base.html:372 stock/models.py:639 +#: stock/templates/stock/item_base.html:357 +msgid "External Link" +msgstr "" + +#: build/models.py:336 build/serializers.py:381 +#: build/templates/build/sidebar.html:21 company/models.py:142 +#: company/models.py:577 company/templates/company/sidebar.html:25 +#: order/models.py:147 order/models.py:845 order/models.py:1107 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:60 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:711 +#: stock/models.py:2073 stock/models.py:2179 stock/serializers.py:332 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 +#: stock/templates/stock/stock_sidebar.html:25 +msgid "Notes" +msgstr "" + +#: build/models.py:337 +msgid "Extra build notes" +msgstr "" + +#: build/models.py:750 +msgid "No build output specified" +msgstr "" + +#: build/models.py:753 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:756 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1168 +msgid "" +"Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1177 +#, python-brace-format +msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1187 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1193 order/models.py:1225 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1199 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1256 +msgid "Selected stock item not found in BOM" +msgstr "" + +#: build/models.py:1325 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/navbar.html:35 +msgid "Build" +msgstr "" + +#: build/models.py:1326 +msgid "Build to allocate parts" +msgstr "" + +#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 +#: stock/templates/stock/item_base.html:23 +#: stock/templates/stock/item_base.html:351 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1343 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1355 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:34 common/models.py:1429 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:836 order/models.py:1265 order/serializers.py:903 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2779 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +msgid "Quantity" +msgstr "" + +#: build/models.py:1356 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1364 +msgid "Install into" +msgstr "" + +#: build/models.py:1365 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:138 build/serializers.py:605 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:150 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:154 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:158 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:164 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:201 build/serializers.py:596 order/models.py:280 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 +#: stock/models.py:479 stock/models.py:1282 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "" +"Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 +#: stock/forms.py:78 stock/serializers.py:314 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:240 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:241 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:275 stock/api.py:591 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:328 build/serializers.py:393 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +msgid "Location" +msgstr "" + +#: build/serializers.py:371 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:377 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +msgid "Status" +msgstr "" + +#: build/serializers.py:434 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:435 +msgid "" +"Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:445 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:450 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:451 +msgid "" +"Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:461 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:470 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:473 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2903 +#: part/models.py:3045 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:511 +msgid "Build output" +msgstr "" + +#: build/serializers.py:520 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:567 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:582 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:638 order/serializers.py:834 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:644 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:651 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:679 order/serializers.py:1077 +msgid "Allocation items must be provided" +msgstr "" + +#: build/serializers.py:731 +msgid "" +"Stock location where parts are to be sourced (leave blank to take from any " +"location)" +msgstr "" + +#: build/serializers.py:739 +msgid "Exclude Location" +msgstr "" + +#: build/serializers.py:740 +msgid "Exclude stock items from this selected location" +msgstr "" + +#: build/serializers.py:745 +msgid "Interchangeable Stock" +msgstr "" + +#: build/serializers.py:746 +msgid "Stock items in multiple locations can be used interchangeably" +msgstr "" + +#: build/serializers.py:751 +msgid "Substitute Stock" +msgstr "" + +#: build/serializers.py:752 +msgid "Allow allocation of substitute parts" +msgstr "" + +#: build/tasks.py:98 +msgid "Stock required for build order" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: order/templates/order/order_base.html:28 +#: order/templates/order/sales_order_base.html:38 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:50 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:54 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:220 build/views.py:53 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:59 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:64 +#: build/templates/build/build_base.html:65 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:87 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:101 +#, python-format +msgid "This Build Order is allocated to Sales Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:108 +#, python-format +msgid "This Build Order is a child of Build Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:115 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:120 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:125 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:130 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:131 order/models.py:849 +#: order/templates/order/order_base.html:156 +#: order/templates/order/sales_order_base.html:163 +#: report/templates/report/inventree_build_order_base.html:126 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:156 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 +#: order/templates/order/order_base.html:98 +#: order/templates/order/sales_order_base.html:93 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:163 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 +#: order/templates/order/sales_order_base.html:170 +msgid "Completed" +msgstr "" + +#: build/templates/build/build_base.html:176 +#: build/templates/build/detail.html:94 order/models.py:983 +#: order/models.py:1079 order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:291 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:183 +#: build/templates/build/detail.html:108 +#: report/templates/report/inventree_build_order_base.html:153 +msgid "Issued By" +msgstr "" + +#: build/templates/build/build_base.html:228 +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/build_base.html:229 +msgid "Build Order cannot be completed as incomplete build outputs remain" +msgstr "" + +#: build/templates/build/cancel.html:5 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:38 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:43 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:56 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:73 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:126 +#: order/templates/order/order_base.html:143 +#: order/templates/order/sales_order_base.html:157 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:137 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:146 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:172 +msgid "Allocate Stock to Build" +msgstr "" + +#: build/templates/build/detail.html:176 +msgid "Unallocate stock" +msgstr "" + +#: build/templates/build/detail.html:177 +msgid "Unallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:179 +msgid "Automatically allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:180 +msgid "Auto Allocate" +msgstr "" + +#: build/templates/build/detail.html:182 +msgid "Manually allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:186 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 +#: part/templates/part/category.html:174 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:199 +msgid "Untracked stock has been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:203 +msgid "Untracked stock has not been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:210 +msgid "Allocate selected items" +msgstr "" + +#: build/templates/build/detail.html:220 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "" + +#: build/templates/build/detail.html:229 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:233 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:234 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:248 +msgid "Output Actions" +msgstr "" + +#: build/templates/build/detail.html:252 +msgid "Complete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:253 +msgid "Complete outputs" +msgstr "" + +#: build/templates/build/detail.html:255 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:256 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:312 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:548 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:549 +msgid "All untracked stock items have been allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/index.html:37 build/templates/build/index.html:38 +msgid "Print Build Orders" +msgstr "" + +#: build/templates/build/index.html:44 +#: order/templates/order/purchase_orders.html:34 +#: order/templates/order/sales_orders.html:37 +msgid "Display calendar view" +msgstr "" + +#: build/templates/build/index.html:47 +#: order/templates/order/purchase_orders.html:37 +#: order/templates/order/sales_orders.html:40 +msgid "Display list view" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:15 +msgid "Completed Outputs" +msgstr "" + +#: build/views.py:73 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:114 +msgid "Delete Build Order" +msgstr "" + +#: common/files.py:65 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:67 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:76 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:34 +msgid "File" +msgstr "" + +#: common/forms.py:35 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:50 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:51 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:381 +msgid "Settings key (must be unique - case insensitive)" +msgstr "" + +#: common/models.py:383 +msgid "Settings value" +msgstr "" + +#: common/models.py:417 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:437 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:448 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:490 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:637 +msgid "No group" +msgstr "" + +#: common/models.py:679 +msgid "Restart required" +msgstr "" + +#: common/models.py:680 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:687 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:689 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:693 +msgid "Use instance name" +msgstr "" + +#: common/models.py:694 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:700 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "" + +#: common/models.py:701 +msgid "Internal company name" +msgstr "" + +#: common/models.py:706 +msgid "Base URL" +msgstr "" + +#: common/models.py:707 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:713 +msgid "Default Currency" +msgstr "" + +#: common/models.py:714 +msgid "Default currency" +msgstr "" + +#: common/models.py:720 +msgid "Download from URL" +msgstr "" + +#: common/models.py:721 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:727 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:728 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:734 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:735 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:739 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:740 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:753 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:754 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:760 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:761 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:767 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:768 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:774 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:775 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:781 part/models.py:2598 report/models.py:183 +msgid "Template" +msgstr "" + +#: common/models.py:782 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:788 part/models.py:964 +msgid "Assembly" +msgstr "" + +#: common/models.py:789 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:795 part/models.py:970 +msgid "Component" +msgstr "" + +#: common/models.py:796 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:802 part/models.py:981 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:803 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:809 part/models.py:986 +msgid "Salable" +msgstr "" + +#: common/models.py:810 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:816 part/models.py:976 +msgid "Trackable" +msgstr "" + +#: common/models.py:817 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:823 part/models.py:996 +#: part/templates/part/part_base.html:151 +msgid "Virtual" +msgstr "" + +#: common/models.py:824 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:830 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:831 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:837 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:838 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:849 +msgid "Show Price in BOM" +msgstr "" + +#: common/models.py:850 +msgid "Include pricing information in BOM tables" +msgstr "" + +#: common/models.py:861 +msgid "Show Price History" +msgstr "" + +#: common/models.py:862 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:868 +msgid "Show related parts" +msgstr "" + +#: common/models.py:869 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:875 +msgid "Create initial stock" +msgstr "" + +#: common/models.py:876 +msgid "Create initial stock on part creation" +msgstr "" + +#: common/models.py:882 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:883 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:889 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:890 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:896 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:897 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:904 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:905 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:911 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:912 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:918 +msgid "Page Size" +msgstr "" + +#: common/models.py:919 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:929 +msgid "Test Reports" +msgstr "" + +#: common/models.py:930 +msgid "Enable generation of test reports" +msgstr "" + +#: common/models.py:936 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:937 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:943 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:944 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:950 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:951 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:953 +msgid "days" +msgstr "" + +#: common/models.py:958 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:959 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:965 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:966 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:972 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:973 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:978 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:979 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:983 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:984 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:989 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:990 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:996 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:997 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:1002 +msgid "Enable registration" +msgstr "" + +#: common/models.py:1003 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:1008 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:1009 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1014 +msgid "Email required" +msgstr "" + +#: common/models.py:1015 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1020 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1021 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1026 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1027 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1032 +msgid "Password twice" +msgstr "" + +#: common/models.py:1033 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1038 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1039 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1044 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1045 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1051 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1052 +msgid "" +"Check that all plugins are installed on startup - enable in container " +"enviroments" +msgstr "" + +#: common/models.py:1059 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1060 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1066 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1067 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1073 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1074 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1080 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:1081 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:1087 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:1088 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:1103 common/models.py:1389 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:1134 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:1135 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:1140 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:1141 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:1146 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:1147 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:1152 +msgid "Recent Part Count" +msgstr "" + +#: common/models.py:1153 +msgid "Number of recent parts to display on index page" +msgstr "" + +#: common/models.py:1159 +msgid "Show unvalidated BOMs" +msgstr "" + +#: common/models.py:1160 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:1165 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:1166 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:1171 +msgid "Recent Stock Count" +msgstr "" + +#: common/models.py:1172 +msgid "Number of recent stock items to display on index page" +msgstr "" + +#: common/models.py:1177 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1178 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:1183 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1184 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:1189 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1190 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:1195 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1196 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:1201 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1202 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:1207 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:1208 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:1213 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:1214 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:1219 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:1220 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:1225 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:1226 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:1231 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:1232 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:1237 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:1238 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:1244 +msgid "Enable email notifications" +msgstr "" + +#: common/models.py:1245 +msgid "Allow sending of emails for event notifications" +msgstr "" + +#: common/models.py:1251 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1252 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1258 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1259 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1265 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1266 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1272 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1273 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1279 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1280 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1286 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1287 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1293 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1294 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1300 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1301 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1307 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1308 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1314 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1315 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1321 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1322 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1328 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1329 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1335 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1336 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1342 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1343 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1349 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1350 +msgid "InvenTree navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1356 +msgid "Date Format" +msgstr "" + +#: common/models.py:1357 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1371 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1372 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:1430 company/forms.py:43 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:1437 company/serializers.py:264 +#: company/templates/company/supplier_part.html:256 +msgid "Price" +msgstr "" + +#: common/models.py:1438 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:1595 common/models.py:1734 +msgid "Endpoint" +msgstr "" + +#: common/models.py:1596 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:1605 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:1610 part/models.py:991 plugin/models.py:46 +msgid "Active" +msgstr "" + +#: common/models.py:1611 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:1625 +msgid "Token" +msgstr "" + +#: common/models.py:1626 +msgid "Token for access" +msgstr "" + +#: common/models.py:1633 +msgid "Secret" +msgstr "" + +#: common/models.py:1634 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:1701 +msgid "Message ID" +msgstr "" + +#: common/models.py:1702 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:1710 +msgid "Host" +msgstr "" + +#: common/models.py:1711 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:1718 +msgid "Header" +msgstr "" + +#: common/models.py:1719 +msgid "Header of this message" +msgstr "" + +#: common/models.py:1725 +msgid "Body" +msgstr "" + +#: common/models.py:1726 +msgid "Body of this message" +msgstr "" + +#: common/models.py:1735 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:1740 +msgid "Worked on" +msgstr "" + +#: common/models.py:1741 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/views.py:93 order/templates/order/purchase_order_detail.html:23 +#: order/views.py:243 part/views.py:208 +#: templates/patterns/wizard/upload.html:37 +msgid "Upload File" +msgstr "" + +#: common/views.py:94 order/views.py:244 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/views.py:209 templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:95 +msgid "Match Items" +msgstr "" + +#: common/views.py:440 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:495 +msgid "Parts imported" +msgstr "" + +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 +#: part/templates/part/import_wizard/match_references.html:19 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:35 +msgid "Previous Step" +msgstr "" + +#: company/forms.py:24 part/forms.py:46 +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: company/forms.py:25 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/models.py:105 +msgid "Company description" +msgstr "" + +#: company/models.py:106 +msgid "Description of the company" +msgstr "" + +#: company/models.py:112 company/templates/company/company_base.html:97 +#: templates/InvenTree/settings/plugin_settings.html:55 +msgid "Website" +msgstr "" + +#: company/models.py:113 +msgid "Company website URL" +msgstr "" + +#: company/models.py:117 company/templates/company/company_base.html:115 +msgid "Address" +msgstr "" + +#: company/models.py:118 +msgid "Company address" +msgstr "" + +#: company/models.py:121 +msgid "Phone number" +msgstr "" + +#: company/models.py:122 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:125 company/templates/company/company_base.html:129 +#: templates/InvenTree/settings/user.html:48 +msgid "Email" +msgstr "" + +#: company/models.py:125 +msgid "Contact email address" +msgstr "" + +#: company/models.py:128 company/templates/company/company_base.html:136 +msgid "Contact" +msgstr "" + +#: company/models.py:129 +msgid "Point of contact" +msgstr "" + +#: company/models.py:131 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:139 part/models.py:883 +msgid "Image" +msgstr "" + +#: company/models.py:144 +msgid "is customer" +msgstr "" + +#: company/models.py:144 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:146 +msgid "is supplier" +msgstr "" + +#: company/models.py:146 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:148 +msgid "is manufacturer" +msgstr "" + +#: company/models.py:148 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:152 company/serializers.py:270 +#: company/templates/company/company_base.html:103 stock/serializers.py:179 +msgid "Currency" +msgstr "" + +#: company/models.py:155 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:320 company/models.py:535 stock/models.py:583 +#: stock/templates/stock/item_base.html:142 +msgid "Base Part" +msgstr "" + +#: company/models.py:324 company/models.py:539 +msgid "Select part" +msgstr "" + +#: company/models.py:335 company/templates/company/company_base.html:73 +#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/supplier_part.html:97 +#: stock/templates/stock/item_base.html:364 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:336 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/templates/company/supplier_part.html:105 +msgid "MPN" +msgstr "" + +#: company/models.py:343 +msgid "Manufacturer Part Number" +msgstr "" + +#: company/models.py:349 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:355 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:409 company/models.py:558 +#: company/templates/company/manufacturer_part.html:6 +#: company/templates/company/manufacturer_part.html:23 +#: stock/templates/stock/item_base.html:374 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:416 +msgid "Parameter name" +msgstr "" + +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:2166 +msgid "Value" +msgstr "" + +#: company/models.py:423 +msgid "Parameter value" +msgstr "" + +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:306 +#: templates/InvenTree/settings/settings.html:325 +msgid "Units" +msgstr "" + +#: company/models.py:430 +msgid "Parameter units" +msgstr "" + +#: company/models.py:502 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:545 company/templates/company/company_base.html:78 +#: company/templates/company/supplier_part.html:87 order/models.py:227 +#: order/templates/order/order_base.html:112 +#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 +msgid "Supplier" +msgstr "" + +#: company/models.py:546 +msgid "Select supplier" +msgstr "" + +#: company/models.py:551 company/templates/company/supplier_part.html:91 +#: part/bom.py:238 part/bom.py:266 +msgid "SKU" +msgstr "" + +#: company/models.py:552 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:559 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:565 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:571 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:576 company/templates/company/supplier_part.html:119 +#: part/models.py:2791 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 +msgid "Note" +msgstr "" + +#: company/models.py:580 part/models.py:1876 +msgid "base cost" +msgstr "" + +#: company/models.py:580 part/models.py:1876 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:582 company/templates/company/supplier_part.html:112 +#: stock/models.py:607 stock/templates/stock/item_base.html:322 +msgid "Packaging" +msgstr "" + +#: company/models.py:582 +msgid "Part packaging" +msgstr "" + +#: company/models.py:584 part/models.py:1878 +msgid "multiple" +msgstr "" + +#: company/models.py:584 +msgid "Order multiple" +msgstr "" + +#: company/models.py:708 +msgid "last updated" +msgstr "" + +#: company/serializers.py:70 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:71 +msgid "Currency Code" +msgstr "" + +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 +#: templates/InvenTree/search.html:176 +msgid "Company" +msgstr "" + +#: company/templates/company/company_base.html:22 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:26 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:31 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:32 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:36 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:37 +#: company/templates/company/company_base.html:159 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:56 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:83 order/models.py:574 +#: order/templates/order/sales_order_base.html:115 stock/models.py:626 +#: stock/models.py:627 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:108 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:122 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:205 +#: part/templates/part/part_base.html:491 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/detail.html:14 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:118 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:18 +#: order/templates/order/order_wizard/select_parts.html:44 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:118 +#: part/templates/part/detail.html:353 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:127 +#: company/templates/company/manufacturer_part.html:156 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 +msgid "Options" +msgstr "" + +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 +#: part/templates/part/category.html:174 +msgid "Order parts" +msgstr "" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" +msgstr "" + +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 +msgid "Delete Parts" +msgstr "" + +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:65 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:106 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:116 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 +#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:47 +#: users/models.py:45 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:120 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:121 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:142 +#: company/templates/company/sidebar.html:20 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 +#: templates/InvenTree/settings/sidebar.html:49 templates/navbar.html:58 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:146 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:167 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:184 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:215 +#: part/templates/part/detail.html:452 +msgid "Delete Supplier Parts?" +msgstr "" + +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:453 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: company/templates/company/index.html:8 +msgid "Supplier List" +msgstr "" + +#: company/templates/company/manufacturer_part.html:14 company/views.py:55 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 +#: templates/navbar.html:46 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/supplier_part.html:34 +#: company/templates/company/supplier_part.html:159 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:40 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:44 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/supplier_part.html:63 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/supplier_part.html:15 company/views.py:49 +#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: part/templates/part/detail.html:364 +msgid "Delete supplier parts" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:254 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: users/models.py:218 +msgid "Delete" +msgstr "" + +#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:147 +#: part/templates/part/detail.html:185 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part.html:66 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:158 +msgid "Delete parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:191 +#: part/templates/part/detail.html:865 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:239 +msgid "Selected parameters will be deleted" +msgstr "" + +#: company/templates/company/manufacturer_part.html:251 +msgid "Delete Parameters" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 stock/models.py:591 +#: stock/templates/stock/item_base.html:386 +msgid "Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:38 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:42 +msgid "Delete supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:138 +#: company/templates/company/supplier_part_navbar.html:12 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:141 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:142 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:155 +#: company/templates/company/supplier_part_navbar.html:19 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:160 +#: part/templates/part/detail.html:81 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:179 +#: part/templates/part/prices.html:7 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:184 +#: company/templates/company/supplier_part.html:298 +#: part/templates/part/prices.html:271 part/views.py:1238 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +msgid "No price break information found" +msgstr "" + +#: company/templates/company/supplier_part.html:224 part/views.py:1300 +msgid "Delete Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:238 part/views.py:1286 +msgid "Edit Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:263 +msgid "Edit price break" +msgstr "" + +#: company/templates/company/supplier_part.html:264 +msgid "Delete price break" +msgstr "" + +#: company/templates/company/supplier_part.html:273 +msgid "Last updated" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:15 +#: part/templates/part/part_sidebar.html:15 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:150 +#: templates/InvenTree/settings/sidebar.html:43 templates/navbar.html:28 +msgid "Stock" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:22 +msgid "Orders" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:26 +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:29 +#: part/templates/part/part_sidebar.html:32 +msgid "Pricing" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:152 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 +msgid "Stock Items" +msgstr "" + +#: company/views.py:50 +msgid "New Supplier" +msgstr "" + +#: company/views.py:56 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:61 templates/InvenTree/search.html:208 +#: templates/navbar.html:57 +msgid "Customers" +msgstr "" + +#: company/views.py:62 +msgid "New Customer" +msgstr "" + +#: company/views.py:69 +msgid "Companies" +msgstr "" + +#: company/views.py:70 +msgid "New Company" +msgstr "" + +#: company/views.py:129 part/views.py:589 +msgid "Download Image" +msgstr "" + +#: company/views.py:158 part/views.py:621 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:165 part/views.py:628 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + +#: company/views.py:174 part/views.py:637 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: label/api.py:97 report/api.py:203 +msgid "No valid objects provided to template" +msgstr "" + +#: label/models.py:113 +msgid "Label name" +msgstr "" + +#: label/models.py:120 +msgid "Label description" +msgstr "" + +#: label/models.py:127 +msgid "Label" +msgstr "" + +#: label/models.py:128 +msgid "Label template file" +msgstr "" + +#: label/models.py:134 report/models.py:294 +msgid "Enabled" +msgstr "" + +#: label/models.py:135 +msgid "Label template is enabled" +msgstr "" + +#: label/models.py:140 +msgid "Width [mm]" +msgstr "" + +#: label/models.py:141 +msgid "Label width, specified in mm" +msgstr "" + +#: label/models.py:147 +msgid "Height [mm]" +msgstr "" + +#: label/models.py:148 +msgid "Label height, specified in mm" +msgstr "" + +#: label/models.py:154 report/models.py:287 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:155 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:258 +msgid "Query filters (comma-separated list of key=value pairs)," +msgstr "" + +#: label/models.py:259 label/models.py:319 label/models.py:366 +#: report/models.py:318 report/models.py:455 report/models.py:493 +msgid "Filters" +msgstr "" + +#: label/models.py:318 +msgid "Query filters (comma-separated list of key=value pairs" +msgstr "" + +#: label/models.py:365 +msgid "Part query filters (comma-separated value of key=value pairs)" +msgstr "" + +#: order/forms.py:24 order/templates/order/order_base.html:52 +msgid "Place order" +msgstr "" + +#: order/forms.py:35 order/templates/order/order_base.html:60 +msgid "Mark order as complete" +msgstr "" + +#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 +#: order/templates/order/sales_order_base.html:60 +msgid "Cancel order" +msgstr "" + +#: order/models.py:125 +msgid "Order description" +msgstr "" + +#: order/models.py:127 +msgid "Link to external page" +msgstr "" + +#: order/models.py:135 +msgid "Created By" +msgstr "" + +#: order/models.py:142 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:147 +msgid "Order notes" +msgstr "" + +#: order/models.py:214 order/models.py:564 +msgid "Order reference" +msgstr "" + +#: order/models.py:219 order/models.py:579 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:228 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:231 order/templates/order/order_base.html:118 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:231 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:238 +msgid "received by" +msgstr "" + +#: order/models.py:243 +msgid "Issue Date" +msgstr "" + +#: order/models.py:244 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:249 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:250 +msgid "" +"Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:256 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:285 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:430 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:575 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:581 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:581 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:586 +msgid "" +"Target date for order completion. Order will be overdue after this date." +msgstr "" + +#: order/models.py:589 order/models.py:1084 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:596 +msgid "shipped by" +msgstr "" + +#: order/models.py:662 +msgid "Order cannot be completed as no parts have been assigned" +msgstr "" + +#: order/models.py:666 +msgid "Only a pending order can be marked as complete" +msgstr "" + +#: order/models.py:669 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:672 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:837 +msgid "Item quantity" +msgstr "" + +#: order/models.py:843 +msgid "Line item reference" +msgstr "" + +#: order/models.py:845 +msgid "Line item notes" +msgstr "" + +#: order/models.py:850 +msgid "Target shipping date for this line item" +msgstr "" + +#: order/models.py:878 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:891 order/models.py:982 order/models.py:1078 +msgid "Order" +msgstr "" + +#: order/models.py:892 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_po_report.html:76 +#: stock/templates/stock/item_base.html:336 +msgid "Purchase Order" +msgstr "" + +#: order/models.py:913 +msgid "Supplier part" +msgstr "" + +#: order/models.py:920 order/templates/order/order_base.html:163 +msgid "Received" +msgstr "" + +#: order/models.py:921 +msgid "Number of items received" +msgstr "" + +#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:720 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:929 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:937 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:992 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +msgid "Sale Price" +msgstr "" + +#: order/models.py:993 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:998 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1085 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1092 +msgid "Checked By" +msgstr "" + +#: order/models.py:1093 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1101 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1108 +msgid "Shipment notes" +msgstr "" + +#: order/models.py:1115 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1116 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1126 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1129 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1207 order/models.py:1209 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:1213 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:1215 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:1218 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:1222 +msgid "StockItem is over-allocated" +msgstr "" + +#: order/models.py:1228 order/serializers.py:827 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:1231 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:1232 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:1240 +msgid "Line" +msgstr "" + +#: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 +msgid "Shipment" +msgstr "" + +#: order/models.py:1249 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 +msgid "Item" +msgstr "" + +#: order/models.py:1262 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:1265 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/serializers.py:187 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:238 order/serializers.py:883 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:244 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:254 order/serializers.py:359 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:273 +msgid "Enter batch code for incoming stock items" +msgstr "" + +#: order/serializers.py:281 +msgid "Enter serial numbers for incoming stock items" +msgstr "" + +#: order/serializers.py:294 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:295 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:312 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:331 +msgid "An integer quantity must be provided for trackable parts" +msgstr "" + +#: order/serializers.py:371 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:388 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:399 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:672 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:742 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:792 order/serializers.py:895 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:814 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:908 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:932 order/serializers.py:1057 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:935 order/serializers.py:1060 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:987 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:997 +msgid "The following serial numbers are already allocated" +msgstr "" + +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 +msgid "Are you sure you want to delete this attachment?" +msgstr "" + +#: order/templates/order/order_base.html:33 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:35 +#: order/templates/order/sales_order_base.html:45 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:41 +#: order/templates/order/sales_order_base.html:54 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:45 +#: order/templates/order/sales_order_base.html:58 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:56 +msgid "Receive items" +msgstr "" + +#: order/templates/order/order_base.html:58 +#: order/templates/order/purchase_order_detail.html:30 +msgid "Receive Items" +msgstr "" + +#: order/templates/order/order_base.html:62 +#: order/templates/order/sales_order_base.html:67 order/views.py:181 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/sales_order_base.html:79 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/sales_order_base.html:84 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:94 +#: order/templates/order/sales_order_base.html:89 +msgid "Order Status" +msgstr "" + +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:128 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:130 +#: order/templates/order/sales_order_base.html:134 +#: order/templates/order/sales_order_base.html:144 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:149 +#: report/templates/report/inventree_build_order_base.html:122 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:219 +msgid "Edit Purchase Order" +msgstr "" + +#: order/templates/order/order_cancel.html:8 +msgid "" +"Cancelling this order means that the order and line items will no longer be " +"editable." +msgstr "" + +#: order/templates/order/order_complete.html:7 +msgid "Mark this order as complete?" +msgstr "" + +#: order/templates/order/order_complete.html:10 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: order/templates/order/order_complete.html:11 +msgid "" +"Completing this order means that the order and line items will no longer be " +"editable." +msgstr "" + +#: order/templates/order/order_issue.html:8 +msgid "" +"After placing this purchase order, line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:13 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:14 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:11 +msgid "Step 1 of 2 - Select Part Suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:16 +msgid "Select suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:20 +msgid "No purchaseable parts selected" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:33 +msgid "Select Supplier" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 +#, python-format +msgid "Select a supplier for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:77 +#: part/templates/part/set_category.html:32 +msgid "Remove part" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:8 +msgid "Step 2 of 2 - Select Purchase Orders" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:12 +msgid "Select existing purchase orders, or create new orders." +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:31 +msgid "Items" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:32 +msgid "Select Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:45 +#, python-format +msgid "Create new purchase order for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:68 +#, python-format +msgid "Select a purchase order for %(name)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_po_report.html:84 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:17 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:29 +msgid "Receive selected items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:49 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:33 +msgid "Print Order Reports" +msgstr "" + +#: order/templates/order/sales_order_base.html:43 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:47 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/sales_order_base.html:66 +#: order/templates/order/sales_order_base.html:229 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:102 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:122 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/sales_order_base.html:140 +#: order/templates/order/sales_order_detail.html:77 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:215 +msgid "Edit Sales Order" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:8 +#: stock/templates/stock/stockitem_convert.html:13 +msgid "Warning" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:9 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/sales_order_detail.html:17 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:43 +#: order/templates/order/so_sidebar.html:8 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:47 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:56 +msgid "New Shipment" +msgstr "" + +#: order/views.py:99 +msgid "Cancel Order" +msgstr "" + +#: order/views.py:108 order/views.py:134 +msgid "Confirm order cancellation" +msgstr "" + +#: order/views.py:111 order/views.py:137 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/views.py:125 +msgid "Cancel sales order" +msgstr "" + +#: order/views.py:151 +msgid "Issue Order" +msgstr "" + +#: order/views.py:160 +msgid "Confirm order placement" +msgstr "" + +#: order/views.py:170 +msgid "Purchase order issued" +msgstr "" + +#: order/views.py:197 +msgid "Confirm order completion" +msgstr "" + +#: order/views.py:208 +msgid "Purchase order completed" +msgstr "" + +#: order/views.py:245 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:489 +msgid "Update prices" +msgstr "" + +#: order/views.py:747 +#, python-brace-format +msgid "Ordered {n} parts" +msgstr "" + +#: order/views.py:858 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:864 +msgid "Price not found" +msgstr "" + +#: order/views.py:867 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:872 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/api.py:491 +msgid "Incoming Purchase Order" +msgstr "" + +#: part/api.py:511 +msgid "Outgoing Sales Order" +msgstr "" + +#: part/api.py:529 +msgid "Stock produced by Build Order" +msgstr "" + +#: part/api.py:561 +msgid "Stock required for Build Order" +msgstr "" + +#: part/api.py:641 +msgid "Valid" +msgstr "" + +#: part/api.py:642 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:647 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:1027 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:1031 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:1046 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 +msgid "This field is required" +msgstr "" + +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:356 +msgid "Default Location" +msgstr "" + +#: part/bom.py:126 templates/email/low_stock_notification.html:17 +msgid "Total Stock" +msgstr "" + +#: part/bom.py:127 part/templates/part/part_base.html:189 +msgid "Available Stock" +msgstr "" + +#: part/bom.py:128 part/templates/part/part_base.html:207 +msgid "On Order" +msgstr "" + +#: part/forms.py:84 +msgid "Select part category" +msgstr "" + +#: part/forms.py:121 +msgid "Add parameter template to same level categories" +msgstr "" + +#: part/forms.py:125 +msgid "Add parameter template to all categories" +msgstr "" + +#: part/forms.py:145 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:113 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:127 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:96 +#: users/models.py:40 +msgid "Part Categories" +msgstr "" + +#: part/models.py:368 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/settings/sidebar.html:39 templates/navbar.html:21 +#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +msgid "Parts" +msgstr "" + +#: part/models.py:460 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:540 part/models.py:552 +#, python-brace-format +msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" +msgstr "" + +#: part/models.py:682 +msgid "Next available serial numbers are" +msgstr "" + +#: part/models.py:686 +msgid "Next available serial number is" +msgstr "" + +#: part/models.py:691 +msgid "Most recent serial number is" +msgstr "" + +#: part/models.py:787 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:816 part/models.py:2695 +msgid "Part name" +msgstr "" + +#: part/models.py:823 +msgid "Is Template" +msgstr "" + +#: part/models.py:824 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:834 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:835 +msgid "Variant Of" +msgstr "" + +#: part/models.py:841 +msgid "Part description" +msgstr "" + +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:320 +msgid "Keywords" +msgstr "" + +#: part/models.py:847 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:283 +#: part/templates/part/set_category.html:15 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +msgid "Category" +msgstr "" + +#: part/models.py:855 +msgid "Part category" +msgstr "" + +#: part/models.py:860 part/templates/part/part_base.html:292 +msgid "IPN" +msgstr "" + +#: part/models.py:861 +msgid "Internal Part Number" +msgstr "" + +#: part/models.py:867 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:868 part/templates/part/part_base.html:299 +#: report/models.py:196 +msgid "Revision" +msgstr "" + +#: part/models.py:890 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:937 part/templates/part/part_base.html:365 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:938 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:945 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:946 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:951 part/templates/part/part_base.html:200 +msgid "Minimum Stock" +msgstr "" + +#: part/models.py:952 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:959 +msgid "Stock keeping units for this part" +msgstr "" + +#: part/models.py:965 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:971 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:977 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:982 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:987 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:992 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:997 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:1002 +msgid "Part notes - supports Markdown formatting" +msgstr "" + +#: part/models.py:1005 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:1005 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:1008 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:1010 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1014 +msgid "Creation User" +msgstr "" + +#: part/models.py:1878 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:2442 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2459 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2479 +msgid "Test Name" +msgstr "" + +#: part/models.py:2480 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:2485 +msgid "Test Description" +msgstr "" + +#: part/models.py:2486 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:2491 +msgid "Required" +msgstr "" + +#: part/models.py:2492 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:2497 +msgid "Requires Value" +msgstr "" + +#: part/models.py:2498 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:2503 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:2504 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:2515 +#, python-brace-format +msgid "Illegal character in template name ({c})" +msgstr "" + +#: part/models.py:2551 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:2559 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:2566 +msgid "Parameter Units" +msgstr "" + +#: part/models.py:2596 +msgid "Parent Part" +msgstr "" + +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:2600 +msgid "Data" +msgstr "" + +#: part/models.py:2600 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 +msgid "Default Value" +msgstr "" + +#: part/models.py:2653 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:2687 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2690 +msgid "Part ID" +msgstr "" + +#: part/models.py:2691 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:2694 +msgid "Part Name" +msgstr "" + +#: part/models.py:2698 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2699 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:2702 +msgid "Level" +msgstr "" + +#: part/models.py:2703 +msgid "BOM level" +msgstr "" + +#: part/models.py:2764 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2772 +msgid "Sub part" +msgstr "" + +#: part/models.py:2773 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:2779 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:2781 part/templates/part/upload_bom.html:58 +msgid "Optional" +msgstr "" + +#: part/models.py:2781 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:2784 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:2785 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:2788 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:2791 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:2793 +msgid "Checksum" +msgstr "" + +#: part/models.py:2793 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:2797 part/templates/part/upload_bom.html:57 +msgid "Inherited" +msgstr "" + +#: part/models.py:2798 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:2803 part/templates/part/upload_bom.html:56 +msgid "Allow Variants" +msgstr "" + +#: part/models.py:2804 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:2889 stock/models.py:469 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:2898 part/models.py:2900 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:3012 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:3034 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:3046 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:3054 +msgid "Substitute part" +msgstr "" + +#: part/models.py:3065 +msgid "Part 1" +msgstr "" + +#: part/models.py:3069 +msgid "Part 2" +msgstr "" + +#: part/models.py:3069 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:3101 +msgid "" +"Error creating relationship: check that the part is not related to itself " +"and that the relationship is unique" +msgstr "" + +#: part/serializers.py:835 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:846 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:847 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:852 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:853 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:858 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:859 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:864 +msgid "Copy Substitute Parts" +msgstr "" + +#: part/serializers.py:865 +msgid "Copy substitute parts when duplicate BOM items" +msgstr "" + +#: part/serializers.py:909 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:910 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:937 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:980 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:983 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:986 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:995 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:1003 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:1022 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:18 +msgid "Low stock notification" +msgstr "" + +#: part/tasks.py:19 +#, python-brace-format +msgid "" +"The available stock for {part.name} has fallen below the configured minimum " +"level" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +#, python-format +msgid "The BOM for %(part)s has 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" +msgstr "" + +#: part/templates/part/bom.html:21 +#, python-format +msgid "The BOM for %(part)s has not been validated." +msgstr "" + +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/bom.html:34 +msgid "Delete Items" +msgstr "" + +#: part/templates/part/category.html:28 part/templates/part/category.html:32 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:36 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:42 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:47 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:48 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:53 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:61 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "New Category" +msgstr "" + +#: part/templates/part/category.html:80 part/templates/part/category.html:93 +msgid "Category Path" +msgstr "" + +#: part/templates/part/category.html:94 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:114 part/templates/part/category.html:211 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/templates/part/category.html:119 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:157 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:158 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set category" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set Category" +msgstr "" + +#: part/templates/part/category.html:176 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export Data" +msgstr "" + +#: part/templates/part/category.html:201 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:309 +msgid "Create Part Category" +msgstr "" + +#: part/templates/part/category.html:329 +msgid "Create Part" +msgstr "" + +#: part/templates/part/category.html:332 +msgid "Create another part after this one" +msgstr "" + +#: part/templates/part/category.html:333 +msgid "Part created successfully" +msgstr "" + +#: part/templates/part/category_delete.html:7 +msgid "Are you sure you want to delete this part category?" +msgstr "" + +#: part/templates/part/category_delete.html:12 +#, python-format +msgid "This category contains %(n)s child categories" +msgstr "" + +#: part/templates/part/category_delete.html:14 +#, python-format +msgid "" +"If this category is deleted, these child categories will be moved to " +"%(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:16 +msgid "" +"If this category is deleted, these child categories will be moved to the top " +"level part category" +msgstr "" + +#: part/templates/part/category_delete.html:23 +#, python-format +msgid "This category contains %(n)s parts" +msgstr "" + +#: part/templates/part/category_delete.html:25 +#, python-format +msgid "If this category is deleted, these parts will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:27 +msgid "" +"If this category is deleted, these parts will be moved to the top level part " +"category" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:9 +msgid "Duplicate Part" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:20 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:52 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:57 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:156 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:157 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:184 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:251 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:255 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:257 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:267 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:268 +msgid "Copy BOM" +msgstr "" + +#: part/templates/part/detail.html:269 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:274 +msgid "New BOM Item" +msgstr "" + +#: part/templates/part/detail.html:275 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:288 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:306 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:43 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:349 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:377 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:393 +msgid "Delete manufacturer parts" +msgstr "" + +#: part/templates/part/detail.html:596 +msgid "Delete selected BOM items?" +msgstr "" + +#: part/templates/part/detail.html:597 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: part/templates/part/detail.html:646 +msgid "Create BOM Item" +msgstr "" + +#: part/templates/part/detail.html:690 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:698 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:795 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/detail.html:928 +#, python-format +msgid "Purchase Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:940 +#, python-format +msgid "Unit Price-Cost Difference - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:952 +#, python-format +msgid "Supplier Unit Cost - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1041 +#, python-format +msgid "Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: templates/patterns/wizard/upload.html:13 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:14 +msgid "Unsuffitient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:13 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:35 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/location.html:34 +msgid "Barcode actions" +msgstr "" + +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:39 +#: stock/templates/stock/location.html:36 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:55 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:67 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:73 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:88 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:91 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:94 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:97 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:116 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:120 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:124 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:128 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:132 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:136 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:143 +msgid "Inactive" +msgstr "" + +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:599 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:177 +#, python-format +msgid "This part is a variant of %(link)s" +msgstr "" + +#: part/templates/part/part_base.html:194 +msgid "In Stock" +msgstr "" + +#: part/templates/part/part_base.html:215 templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:220 +msgid "Allocated to Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:224 +#: part/templates/part/part_base.html:247 +msgid "Required quantity has not been allocated" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: part/templates/part/part_base.html:249 +msgid "Required quantity has been allocated" +msgstr "" + +#: part/templates/part/part_base.html:236 +msgid "Required for Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:243 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:258 +msgid "Can Build" +msgstr "" + +#: part/templates/part/part_base.html:264 +msgid "Building" +msgstr "" + +#: part/templates/part/part_base.html:313 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:342 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:346 +#: stock/templates/stock/item_base.html:166 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:469 part/templates/part/prices.html:144 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:512 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:593 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 +msgid "Total Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 +#: part/templates/part/prices.html:243 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_sidebar.html:12 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:28 +msgid "Used In" +msgstr "" + +#: part/templates/part/part_sidebar.html:47 +msgid "Scheduling" +msgstr "" + +#: part/templates/part/part_sidebar.html:51 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/partial_delete.html:9 +#, python-format +msgid "" +"Part '%(full_name)s' cannot be deleted as it is still " +"marked as active.\n" +"
        Disable the \"Active\" part attribute and re-try.\n" +" " +msgstr "" + +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "" + +#: part/templates/part/partial_delete.html:22 +#, python-format +msgid "" +"This part is used in BOMs for %(count)s other parts. If you delete this " +"part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format +msgid "" +"There are %(count)s stock entries defined for this part. If you delete this " +"part, the following stock entries will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:43 +#, python-format +msgid "" +"There are %(count)s manufacturers defined for this part. If you delete this " +"part, the following manufacturer parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:54 +#, python-format +msgid "" +"There are %(count)s suppliers defined for this part. If you delete this " +"part, the following supplier parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:65 +#, python-format +msgid "" +"There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this " +"part will permanently remove this tracking information." +msgstr "" + +#: part/templates/part/prices.html:16 +msgid "Pricing ranges" +msgstr "" + +#: part/templates/part/prices.html:22 +msgid "Show supplier cost" +msgstr "" + +#: part/templates/part/prices.html:23 +msgid "Show purchase price" +msgstr "" + +#: part/templates/part/prices.html:50 +msgid "Show BOM cost" +msgstr "" + +#: part/templates/part/prices.html:117 +msgid "Show sale cost" +msgstr "" + +#: part/templates/part/prices.html:118 +msgid "Show sale price" +msgstr "" + +#: part/templates/part/prices.html:140 +msgid "Calculation parameters" +msgstr "" + +#: part/templates/part/prices.html:155 +msgid "Supplier Cost" +msgstr "" + +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:181 +msgid "Stock Pricing" +msgstr "" + +#: part/templates/part/prices.html:190 +msgid "No stock pricing history is available for this part." +msgstr "" + +#: part/templates/part/prices.html:200 +msgid "Internal Cost" +msgstr "" + +#: part/templates/part/prices.html:215 part/views.py:1309 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:230 +msgid "BOM Cost" +msgstr "" + +#: part/templates/part/prices.html:256 +msgid "Sale Cost" +msgstr "" + +#: part/templates/part/prices.html:296 +msgid "No sale pice history available for this part." +msgstr "" + +#: part/templates/part/set_category.html:9 +msgid "Set category for the following parts" +msgstr "" + +#: part/templates/part/stock_count.html:7 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "" +"The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +#, python-format +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" + +#: part/templatetags/inventree_extras.py:189 +msgid "Unknown database" +msgstr "" + +#: part/views.py:88 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:138 +#, python-brace-format +msgid "Set category for {n} parts" +msgstr "" + +#: part/views.py:210 +msgid "Match References" +msgstr "" + +#: part/views.py:507 +msgid "None" +msgstr "" + +#: part/views.py:566 +msgid "Part QR Code" +msgstr "" + +#: part/views.py:668 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:694 +msgid "Updated part image" +msgstr "" + +#: part/views.py:697 +msgid "Part image not found" +msgstr "" + +#: part/views.py:785 +msgid "Confirm Part Deletion" +msgstr "" + +#: part/views.py:792 +msgid "Part was deleted" +msgstr "" + +#: part/views.py:801 +msgid "Part Pricing" +msgstr "" + +#: part/views.py:950 +msgid "Create Part Parameter Template" +msgstr "" + +#: part/views.py:960 +msgid "Edit Part Parameter Template" +msgstr "" + +#: part/views.py:967 +msgid "Delete Part Parameter Template" +msgstr "" + +#: part/views.py:1010 +msgid "Edit Part Category" +msgstr "" + +#: part/views.py:1048 +msgid "Delete Part Category" +msgstr "" + +#: part/views.py:1054 +msgid "Part category was deleted" +msgstr "" + +#: part/views.py:1063 +msgid "Create Category Parameter Template" +msgstr "" + +#: part/views.py:1164 +msgid "Edit Category Parameter Template" +msgstr "" + +#: part/views.py:1220 +msgid "Delete Category Parameter Template" +msgstr "" + +#: part/views.py:1242 +msgid "Added new price break" +msgstr "" + +#: part/views.py:1318 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:1326 +msgid "Delete Internal Price Break" +msgstr "" + +#: plugin/apps.py:52 +msgid "" +"Your enviroment has an outdated git version. This prevents InvenTree from " +"loading plugin details." +msgstr "" + +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 +msgid "No author found" +msgstr "" + +#: plugin/integration.py:160 +msgid "No date found" +msgstr "" + +#: plugin/models.py:26 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:27 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:32 +msgid "Key" +msgstr "" + +#: plugin/models.py:33 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:41 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:47 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:182 +msgid "Plugin" +msgstr "" + +#: plugin/samples/integration/sample.py:42 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:43 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:48 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:49 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/serializers.py:49 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:50 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:55 +msgid "Package Name" +msgstr "" + +#: plugin/serializers.py:56 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:59 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:60 +msgid "" +"This will install this plugin now into the current instance. The instance " +"will go into maintenance." +msgstr "" + +#: plugin/serializers.py:75 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:77 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: report/api.py:235 report/api.py:282 +#, python-brace-format +msgid "Template file '{template}' is missing or does not exist" +msgstr "" + +#: report/models.py:178 +msgid "Template name" +msgstr "" + +#: report/models.py:184 +msgid "Report template file" +msgstr "" + +#: report/models.py:191 +msgid "Report template description" +msgstr "" + +#: report/models.py:197 +msgid "Report revision number (auto-increments)" +msgstr "" + +#: report/models.py:288 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:295 +msgid "Report template is enabled" +msgstr "" + +#: report/models.py:319 +msgid "StockItem query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:327 +msgid "Include Installed Tests" +msgstr "" + +#: report/models.py:328 +msgid "Include test results for stock items installed inside assembled item" +msgstr "" + +#: report/models.py:378 +msgid "Build Filters" +msgstr "" + +#: report/models.py:379 +msgid "Build query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:421 +msgid "Part Filters" +msgstr "" + +#: report/models.py:422 +msgid "Part query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:456 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:494 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:548 +msgid "Snippet" +msgstr "" + +#: report/models.py:549 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:553 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:588 +msgid "Asset" +msgstr "" + +#: report/models.py:589 +msgid "Report asset file" +msgstr "" + +#: report/models.py:592 +msgid "Asset file description" +msgstr "" + +#: report/templates/report/inventree_build_order_base.html:147 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:79 +#: stock/models.py:631 stock/templates/stock/item_base.html:156 +msgid "Serial Number" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:88 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:2154 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:94 +#: stock/models.py:2160 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin_settings.html:38 +msgid "Date" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:108 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:110 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +msgid "Serial" +msgstr "" + +#: stock/api.py:543 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:550 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:575 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:688 +#: stock/templates/stock/item_base.html:193 +msgid "Expiry Date" +msgstr "" + +#: stock/forms.py:75 stock/forms.py:199 +msgid "Expiration date for this stock item" +msgstr "" + +#: stock/forms.py:78 +msgid "Enter unique serial numbers (or leave blank)" +msgstr "" + +#: stock/forms.py:133 +msgid "" +"Destination for serialized stock (by default, will remain in current " +"location)" +msgstr "" + +#: stock/forms.py:135 +msgid "Serial numbers" +msgstr "" + +#: stock/forms.py:135 +msgid "Unique serial numbers (must match quantity)" +msgstr "" + +#: stock/forms.py:137 stock/forms.py:171 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/forms.py:169 +msgid "Destination location for uninstalled items" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm uninstall" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm removal of installed stock items" +msgstr "" + +#: stock/models.py:91 stock/models.py:725 +#: stock/templates/stock/item_base.html:407 +msgid "Owner" +msgstr "" + +#: stock/models.py:92 stock/models.py:726 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:442 +msgid "StockItem with this serial number already exists" +msgstr "" + +#: stock/models.py:486 +#, python-brace-format +msgid "Part type ('{pf}') must be {pe}" +msgstr "" + +#: stock/models.py:496 stock/models.py:505 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:497 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:519 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:525 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:532 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:575 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:584 +msgid "Base part" +msgstr "" + +#: stock/models.py:592 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:598 stock/templates/stock/location.html:16 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:601 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:608 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:614 stock/templates/stock/item_base.html:282 +msgid "Installed In" +msgstr "" + +#: stock/models.py:617 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:633 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:647 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:651 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:660 +msgid "Source Build" +msgstr "" + +#: stock/models.py:662 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:673 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:676 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:682 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:689 +msgid "" +"Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:702 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:702 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:712 stock/templates/stock/item.html:137 +msgid "Stock Item Notes" +msgstr "" + +#: stock/models.py:721 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:753 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1273 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1279 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1285 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({n})" +msgstr "" + +#: stock/models.py:1288 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1291 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1298 +#, python-brace-format +msgid "Serial numbers already exist: {exists}" +msgstr "" + +#: stock/models.py:1369 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1372 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1375 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1378 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1381 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1384 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1391 stock/serializers.py:832 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1395 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1399 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1403 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1575 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:2074 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:2131 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:2137 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:2155 +msgid "Test name" +msgstr "" + +#: stock/models.py:2161 +msgid "Test result" +msgstr "" + +#: stock/models.py:2167 +msgid "Test output value" +msgstr "" + +#: stock/models.py:2174 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2180 +msgid "Test notes" +msgstr "" + +#: stock/serializers.py:173 +msgid "Purchase price of this stock item" +msgstr "" + +#: stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: stock/serializers.py:294 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:309 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:315 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:333 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:346 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:363 stock/views.py:1019 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:650 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:654 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:684 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:690 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:698 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:708 stock/serializers.py:938 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:796 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:801 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:802 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:807 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:808 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:818 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:900 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:928 +msgid "Stock transaction notes" +msgstr "" + +#: stock/templates/stock/item.html:17 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:22 +msgid "New Entry" +msgstr "" + +#: stock/templates/stock/item.html:74 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:82 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:91 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:99 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:103 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:152 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:156 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:316 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:42 +msgid "Unlink Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:44 +msgid "Link Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:54 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:70 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:83 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:93 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:118 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:120 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:123 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +msgid "Expired" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +msgid "Stale" +msgstr "" + +#: stock/templates/stock/item_base.html:206 +msgid "Last Updated" +msgstr "" + +#: stock/templates/stock/item_base.html:211 +msgid "Last Stocktake" +msgstr "" + +#: stock/templates/stock/item_base.html:215 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:224 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:225 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:238 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:246 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:254 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:260 +msgid "" +"This stock item is serialized - it has a unique serial number and the " +"quantity cannot be adjusted." +msgstr "" + +#: stock/templates/stock/item_base.html:301 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:308 +msgid "Barcode Identifier" +msgstr "" + +#: stock/templates/stock/item_base.html:350 +msgid "Parent Item" +msgstr "" + +#: stock/templates/stock/item_base.html:368 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:393 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:411 +msgid "" +"You are not in the list of owners of this item. This stock item cannot be " +"edited." +msgstr "" + +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 +msgid "Read only" +msgstr "" + +#: stock/templates/stock/item_base.html:486 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_delete.html:9 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: stock/templates/stock/item_delete.html:12 +#, python-format +msgid "" +"This will remove %(qty)s units of %(full_name)s from stock." +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:40 +msgid "Check-in Items" +msgstr "" + +#: stock/templates/stock/location.html:68 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:70 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:72 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:81 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:82 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 +msgid "Location Path" +msgstr "" + +#: stock/templates/stock/location.html:107 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:113 +msgid "Location Owner" +msgstr "" + +#: stock/templates/stock/location.html:117 +msgid "" +"You are not in the list of owners of this location. This stock location " +"cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/stats.html:109 users/models.py:42 +msgid "Stock Locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:8 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: stock/templates/stock/location_delete.html:13 +#, python-format +msgid "This location contains %(n)s child locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:15 +#, python-format +msgid "" +"If this location is deleted, these child locations will be moved to " +"%(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:17 +msgid "" +"If this location is deleted, these child locations will be moved to the top " +"level stock location" +msgstr "" + +#: stock/templates/stock/location_delete.html:25 +#, python-format +msgid "This location contains %(n)s stock items" +msgstr "" + +#: stock/templates/stock/location_delete.html:27 +#, python-format +msgid "" +"If this location is deleted, these stock items will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:29 +msgid "" +"If this location is deleted, these stock items will be moved to the top " +"level stock location" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/templates/stock/stock_uninstall.html:8 +msgid "The following stock items will be uninstalled" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:8 +#, python-format +msgid "This stock item is current an instance of %(part)s" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tracking_delete.html:6 +msgid "Are you sure you want to delete this stock tracking entry?" +msgstr "" + +#: stock/views.py:152 +msgid "Edit Stock Location" +msgstr "" + +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 +msgid "Owner is required (ownership control is enabled)" +msgstr "" + +#: stock/views.py:274 +msgid "Stock Location QR code" +msgstr "" + +#: stock/views.py:293 +msgid "Return to Stock" +msgstr "" + +#: stock/views.py:302 +msgid "Specify a valid location" +msgstr "" + +#: stock/views.py:313 +msgid "Stock item returned from customer" +msgstr "" + +#: stock/views.py:324 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:341 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:342 +msgid "Check the confirmation box" +msgstr "" + +#: stock/views.py:357 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/views.py:382 +msgid "Uninstall Stock Items" +msgstr "" + +#: stock/views.py:479 +msgid "Confirm stock adjustment" +msgstr "" + +#: stock/views.py:490 +msgid "Uninstalled stock items" +msgstr "" + +#: stock/views.py:512 +msgid "Edit Stock Item" +msgstr "" + +#: stock/views.py:672 +msgid "Create new Stock Location" +msgstr "" + +#: stock/views.py:773 +msgid "Create new Stock Item" +msgstr "" + +#: stock/views.py:915 +msgid "Duplicate Stock Item" +msgstr "" + +#: stock/views.py:997 +msgid "Quantity cannot be negative" +msgstr "" + +#: stock/views.py:1097 +msgid "Delete Stock Location" +msgstr "" + +#: stock/views.py:1110 +msgid "Delete Stock Item" +msgstr "" + +#: stock/views.py:1121 +msgid "Delete Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1128 +msgid "Edit Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1137 +msgid "Add Stock Tracking Entry" +msgstr "" + +#: templates/403.html:5 templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/404.html:5 templates/404.html:11 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:14 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:5 templates/500.html:11 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:14 +msgid "The InvenTree server raised an internal error" +msgstr "" + +#: templates/500.html:15 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:10 templates/503.html:35 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:41 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:88 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:98 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:108 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:119 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:145 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:168 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:191 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:202 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:224 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:235 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:255 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:266 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:286 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:297 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:8 +msgid "Currency Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:19 +msgid "Base Currency" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:24 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:38 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:44 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:49 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/global.html:9 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:31 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:131 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "" +"The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part.html:62 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:10 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:16 +msgid "" +"Changing the settings below require you to immediatly restart InvenTree. Do " +"not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:34 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:39 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:129 +#: users/models.py:39 +msgid "Admin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin_settings.html:28 +msgid "Author" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin_settings.html:43 +msgid "Version" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 +msgid "Inactive plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:122 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:131 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:10 +#, python-format +msgid "Plugin details for %(name)s" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:17 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:48 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:62 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:71 +msgid "" +"The code information is pulled from the latest git commit for this plugin. " +"It might not reflect official version numbers or information but the actual " +"code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:77 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:83 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:86 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:88 +msgid "This plugin was found in a local InvenTree path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:94 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:104 +#: templates/about.html:47 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +#: templates/about.html:40 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:112 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +msgid "Sign Status" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:122 +msgid "Sign Key" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reports.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:37 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:42 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:116 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:118 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:120 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:209 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:310 +msgid "No part parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +#: templates/InvenTree/settings/user.html:12 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +msgid "Label Printing" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:26 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:29 +msgid "Server Configuration" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Currencies" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:41 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:18 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:22 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 +msgid "Username" +msgstr "" + +#: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 +msgid "Last Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:54 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:75 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:77 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:79 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:85 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:149 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "" +"You currently do not have any email address set up. You should really add an " +"email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:104 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:109 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:117 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:122 +msgid "" +"You can sign in to your account using any of the following third party " +"accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "" +"You currently have no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user.html:162 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "You currently do not have any factors set up." +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:220 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:226 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:227 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:236 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:237 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:241 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:242 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:243 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:252 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:254 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:266 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:27 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:37 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:48 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:56 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:65 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:83 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:90 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:103 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:104 +#, python-format +msgid "" +"Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are " +"welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + +#: templates/about.html:10 +msgid "InvenTree Version Information" +msgstr "" + +#: templates/about.html:11 templates/about.html:105 templates/modals.html:15 +#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/about.html:20 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:25 +msgid "Development Version" +msgstr "" + +#: templates/about.html:28 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:30 +msgid "Update Available" +msgstr "" + +#: templates/about.html:53 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:58 +msgid "API Version" +msgstr "" + +#: templates/about.html:63 +msgid "Python Version" +msgstr "" + +#: templates/about.html:68 +msgid "Django Version" +msgstr "" + +#: templates/about.html:73 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:78 +msgid "Credits" +msgstr "" + +#: templates/about.html:83 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:88 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:95 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:95 +msgid "copy version information" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:10 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:16 +#, python-format +msgid "" +"Please confirm that %(email)s is an email " +"address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:27 +#, python-format +msgid "" +"This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:16 +#: templates/account/login.html:39 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:21 +#, python-format +msgid "" +"Please sign in with one\n" +"of your existing third party accounts or sign up\n" +"for a account and sign in below:" +msgstr "" + +#: templates/account/login.html:25 +#, python-format +msgid "" +"If you have not created an account yet, then please\n" +"sign up first." +msgstr "" + +#: templates/account/login.html:42 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:47 +msgid "InvenTree demo instance" +msgstr "" + +#: templates/account/login.html:47 +msgid "Click here for login details" +msgstr "" + +#: templates/account/login.html:55 +msgid "or use SSO" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "" +"Forgotten your password? Enter your email address below, and we'll send you " +"an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:36 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:11 templates/account/signup.html:22 +msgid "Sign Up" +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "" +"Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:27 +msgid "Or use a SSO-provider for signup" +msgstr "" + +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "" +"Backup tokens have been generated, but are not revealed here for security " +"reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "Back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "" +"Scan the QR code below with a token generator of your choice (for instance " +"Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 +msgid "Add Attachment" +msgstr "" + +#: templates/base.html:99 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:102 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:102 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:18 +msgid "Available" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:31 +msgid "" +"You are receiving this email because you are subscribed to notifications for " +"this part " +msgstr "" + +#: templates/email/email.html:35 +msgid "InvenTree version" +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:19 +msgid "Minimum Quantity" +msgstr "" + +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + +#: templates/modals.html:19 templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/navbar.html:42 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:54 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:94 templates/search.html:8 +#: templates/search_form.html:6 templates/search_form.html:7 +msgid "Search" +msgstr "" + +#: templates/navbar.html:101 +msgid "Scan Barcode" +msgstr "" + +#: templates/navbar.html:108 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:111 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:132 +msgid "Logout" +msgstr "" + +#: templates/navbar.html:134 +msgid "Login" +msgstr "" + +#: templates/navbar.html:154 +msgid "About InvenTree" +msgstr "" + +#: templates/navbar_demo.html:5 +msgid "InvenTree demo mode" +msgstr "" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:6 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:8 +msgid "Log in again" +msgstr "" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:29 +msgid "Searching" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + +#: templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/stock_table.html:17 +msgid "Barcode Actions" +msgstr "" + +#: templates/stock_table.html:33 +msgid "Print test reports" +msgstr "" + +#: templates/stock_table.html:40 +msgid "Stock Options" +msgstr "" + +#: templates/stock_table.html:45 +msgid "Add to selected stock items" +msgstr "" + +#: templates/stock_table.html:46 +msgid "Remove from selected stock items" +msgstr "" + +#: templates/stock_table.html:47 +msgid "Stocktake selected stock items" +msgstr "" + +#: templates/stock_table.html:48 +msgid "Move selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order selected items" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order stock" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete selected items" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete stock" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:64 +msgid "Users" +msgstr "" + +#: users/admin.py:65 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:187 +msgid "The following users are members of multiple groups:" +msgstr "" + +#: users/admin.py:210 +msgid "Personal info" +msgstr "" + +#: users/admin.py:211 +msgid "Permissions" +msgstr "" + +#: users/admin.py:214 +msgid "Important dates" +msgstr "" + +#: users/models.py:201 +msgid "Permission set" +msgstr "" + +#: users/models.py:209 +msgid "Group" +msgstr "" + +#: users/models.py:212 +msgid "View" +msgstr "" + +#: users/models.py:212 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:214 +msgid "Add" +msgstr "" + +#: users/models.py:214 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:216 +msgid "Change" +msgstr "" + +#: users/models.py:216 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:218 +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 001db7c3b9..19537fa0d1 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -135,7 +135,7 @@ msgstr "Выберите файл для вложения" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Ссылка" @@ -154,8 +154,8 @@ msgstr "Комментарий к файлу" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Неверный выбор" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Название" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Название" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Описание" @@ -241,7 +241,7 @@ msgstr "Описание (необязательно)" msgid "parent" msgstr "родитель" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Должно быть действительным номером" @@ -655,7 +655,7 @@ msgstr "Порядок сборки" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Ссылка на заказ" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Краткое описание сборки" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Родительская сборка" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,20 +707,20 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 msgid "Part" -msgstr "Наименование детали" +msgstr "Детали" #: build/models.py:235 msgid "Select part to build" @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Расположение источника" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Дата завершения" @@ -806,7 +806,7 @@ msgstr "Дата завершения" msgid "completed by" msgstr "выполнено" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Выдал/ла" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "Пользователь, выпустивший этот заказ на сборку" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Ответственный" @@ -827,7 +827,7 @@ msgstr "Ответственный" msgid "User responsible for this build order" msgstr "Пользователь, ответственный за этот заказ сборки" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Внешняя ссылка" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -893,10 +893,10 @@ msgstr "Количество должно быть 1 для сериализов #: build/models.py:1256 msgid "Selected stock item not found in BOM" -msgstr "Выбранный предмет со складом не найден в BOM" +msgstr "Выбранная единица хранения не найдена в BOM" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Сборка" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Исходный складской предмет" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Исходный складской предмет" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Введите количество для вывода сборки" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "BOM Компонент" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Целевая дата" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "Просрочено" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Завершённые" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Заказ покупателя" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Выдано" @@ -1293,34 +1293,38 @@ msgstr "" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "Вы уверены, что хотите отменить эту сборку?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "Вы уверены, что хотите удалить эту сборку?" + +#: build/templates/build/detail.html:15 msgid "Build Details" -msgstr "" +msgstr "Подробности сборки" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" -msgstr "" +msgstr "Назначение" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,167 +1332,155 @@ msgstr "" msgid "Batch" msgstr "Партия" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Создано" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Нет конечной даты" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Сборка не завершена" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Заказать детали" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "Вывод" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Печать" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Приложения" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Заметки сборки" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Редактировать заметки" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" -msgstr "" +msgstr "Новый заказ на сборку" #: build/templates/build/index.html:37 build/templates/build/index.html:38 msgid "Print Build Orders" -msgstr "" +msgstr "Печатать заказ на сборку" #: build/templates/build/index.html:44 #: order/templates/order/purchase_orders.html:34 @@ -1512,39 +1504,39 @@ msgstr "" #: build/views.py:73 msgid "Build was cancelled" -msgstr "" +msgstr "Сборка была отменена" #: build/views.py:114 msgid "Delete Build Order" -msgstr "" +msgstr "Удалить заказ на сборку" #: common/files.py:65 msgid "Unsupported file format: {ext.upper()}" -msgstr "" +msgstr "Неподдерживаемый формат файла: {ext.upper()}" #: common/files.py:67 msgid "Error reading file (invalid encoding)" -msgstr "" +msgstr "Ошибка чтения файла (неверная кодировка)" #: common/files.py:72 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "Ошибка чтения файла (неверный формат)" #: common/files.py:74 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "Ошибка чтения файла (неверный размер)" #: common/files.py:76 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "Ошибка чтения файла (данные могут быть повреждены)" #: common/forms.py:34 msgid "File" -msgstr "" +msgstr "Файл" #: common/forms.py:35 msgid "Select file to upload" -msgstr "" +msgstr "Выберите файл для загрузки" #: common/forms.py:50 msgid "{name.title()} File" @@ -1553,7 +1545,7 @@ msgstr "" #: common/forms.py:51 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "Выберите {name} файл для загрузки" #: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" @@ -1585,7 +1577,7 @@ msgstr "" #: common/models.py:679 msgid "Restart required" -msgstr "" +msgstr "Требуется перезапуск" #: common/models.py:680 msgid "A setting has been changed which requires a server restart" @@ -1617,23 +1609,23 @@ msgstr "Внутреннее название компании" #: common/models.py:706 msgid "Base URL" -msgstr "" +msgstr "Базовая ссылка" #: common/models.py:707 msgid "Base URL for server instance" -msgstr "" +msgstr "Базовая ссылка для экземпляра сервера" #: common/models.py:713 msgid "Default Currency" -msgstr "" +msgstr "Валюта по умолчанию" #: common/models.py:714 msgid "Default currency" -msgstr "" +msgstr "Валюта по умолчанию" #: common/models.py:720 msgid "Download from URL" -msgstr "" +msgstr "Скачать по ссылке" #: common/models.py:721 msgid "Allow download of remote images and files from external URL" @@ -1665,7 +1657,7 @@ msgstr "" #: common/models.py:746 msgid "Allow Editing IPN" -msgstr "" +msgstr "Разрешить редактирование IPN" #: common/models.py:747 msgid "Allow changing the IPN value while editing a part" @@ -1703,19 +1695,19 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" -msgstr "" +msgstr "Шаблон" #: common/models.py:782 msgid "Parts are templates by default" -msgstr "" +msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Сборка" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Компонент" @@ -1741,9 +1733,9 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" -msgstr "" +msgstr "Можно продавать" #: common/models.py:810 msgid "Parts are salable by default" @@ -1752,13 +1744,13 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Отслеживание" #: common/models.py:817 msgid "Parts are trackable by default" -msgstr "" +msgstr "По умолчанию детали являются отслеживаемыми" #: common/models.py:823 part/models.py:991 #: part/templates/part/part_base.html:151 @@ -1852,7 +1844,7 @@ msgstr "" #: common/models.py:911 templates/stats.html:25 msgid "Debug Mode" -msgstr "" +msgstr "Режим отладки" #: common/models.py:912 msgid "Generate reports in debug mode (HTML output)" @@ -1976,7 +1968,7 @@ msgstr "" #: common/models.py:1014 msgid "Email required" -msgstr "" +msgstr "Необходимо указать EMail" #: common/models.py:1015 msgid "Require user to supply mail on signup" @@ -2220,11 +2212,11 @@ msgstr "" #: common/models.py:1244 msgid "Enable email notifications" -msgstr "" +msgstr "Включить уведомления по электронной почте" #: common/models.py:1245 msgid "Allow sending of emails for event notifications" -msgstr "" +msgstr "Разрешить отправку уведомлений о событиях по электронной почте" #: common/models.py:1251 msgid "Enable label printing" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "Цена" @@ -2461,11 +2453,11 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" -msgstr "" +msgstr "Загрузить файл" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 @@ -2492,7 +2484,7 @@ msgstr "Детали импортированы" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Предыдущий шаг" @@ -2625,9 +2617,9 @@ msgstr "Выберите производителя" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" -msgstr "" +msgstr "MPN" #: company/models.py:343 templates/js/translated/part.js:247 msgid "Manufacturer Part Number" @@ -2646,7 +2638,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" -msgstr "" +msgstr "Деталь производителя" #: company/models.py:416 msgid "Parameter name" @@ -2655,7 +2647,7 @@ msgstr "Наименование параметра" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Значение" @@ -2663,10 +2655,10 @@ msgstr "Значение" msgid "Parameter value" msgstr "Значение параметра" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "Ед.изм" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Поставщик" @@ -2696,9 +2688,9 @@ msgstr "Выберите поставщика" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" -msgstr "" +msgstr "SKU" #: company/models.py:552 templates/js/translated/part.js:228 msgid "Supplier stock keeping unit" @@ -2710,24 +2702,24 @@ msgstr "" #: company/models.py:565 msgid "URL for external supplier part link" -msgstr "" +msgstr "Ссылка на сайт поставщика" #: company/models.py:571 msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Заметка" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2735,13 +2727,13 @@ msgstr "" #: stock/models.py:599 stock/templates/stock/item_base.html:322 #: templates/js/translated/company.js:850 templates/js/translated/stock.js:1897 msgid "Packaging" -msgstr "" +msgstr "Упаковка" #: company/models.py:582 msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2755,7 +2747,7 @@ msgstr "" #: company/serializers.py:70 msgid "Default currency used for this supplier" -msgstr "" +msgstr "Для этого поставщика используется валюта по умолчанию" #: company/serializers.py:71 msgid "Currency Code" @@ -2770,7 +2762,7 @@ msgstr "Компания" #: company/templates/company/company_base.html:22 #: templates/js/translated/order.js:279 msgid "Create Purchase Order" -msgstr "" +msgstr "Создать заказ на закупку" #: company/templates/company/company_base.html:26 msgid "Company actions" @@ -2827,129 +2819,129 @@ msgstr "Телефон" msgid "Upload Image" msgstr "Загрузить изображение" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Детали поставщиков" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Создать новую деталь поставщика" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "Новая деталь поставщика" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "Настройки" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Заказать детали" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Удалить детали" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Удалить детали" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Детали производителей" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Создать новую деталь производителя" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "Новая деталь производителя" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Склад поставщика" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Заказы на закупку" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Создать новый заказ на закупку" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Новый заказ на закупку" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "Заказы на продажу" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Создать новый заказ на продажу" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Новый заказ на продажу" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Заметки о компании" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "Удалить деталь поставщика?" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "Все выбранные детали поставщика будут удалены" @@ -2966,7 +2958,7 @@ msgstr "Производители" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "Поставщики" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "Удалить деталь поставщика" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "Удалить" @@ -3009,12 +3001,12 @@ msgstr "Удалить" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Параметры" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "Удалить параметры" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "Добавить параметр" @@ -3076,15 +3068,15 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Создать единицу хранения" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" -msgstr "" +msgstr "Новая единица хранения" #: company/templates/company/supplier_part.html:155 #: company/templates/company/supplier_part_navbar.html:19 @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "Последнее обновление" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Склад" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "Покупатели" msgid "New Customer" msgstr "Новый покупатель" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Компании" @@ -3196,7 +3188,7 @@ msgstr "Новая компания" #: company/views.py:129 part/views.py:589 msgid "Download Image" -msgstr "Загрузить изображение" +msgstr "Скачать изображение" #: company/views.py:158 part/views.py:621 msgid "Image size exceeds maximum allowable size for download" @@ -3241,7 +3233,7 @@ msgstr "" #: label/models.py:140 msgid "Width [mm]" -msgstr "" +msgstr "Ширина [мм]" #: label/models.py:141 msgid "Label width, specified in mm" @@ -3249,7 +3241,7 @@ msgstr "" #: label/models.py:147 msgid "Height [mm]" -msgstr "" +msgstr "Высота [мм]" #: label/models.py:148 msgid "Label height, specified in mm" @@ -3270,7 +3262,7 @@ msgstr "" #: label/models.py:259 label/models.py:319 label/models.py:366 #: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" -msgstr "" +msgstr "Фильтры" #: label/models.py:318 msgid "Query filters (comma-separated list of key=value pairs" @@ -3291,7 +3283,7 @@ msgstr "" #: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 #: order/templates/order/sales_order_base.html:60 msgid "Cancel order" -msgstr "" +msgstr "Отменить заказ" #: order/models.py:125 msgid "Order description" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "Заказ на закупку" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3473,7 +3465,7 @@ msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" -msgstr "" +msgstr "Цена продажи" #: order/models.py:993 msgid "Unit sale price" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3578,7 +3570,7 @@ msgstr "" #: order/serializers.py:187 msgid "Purchase price currency" -msgstr "" +msgstr "Курс покупки валюты" #: order/serializers.py:238 order/serializers.py:883 msgid "Line Item" @@ -3614,7 +3606,7 @@ msgstr "" #: order/serializers.py:331 msgid "An integer quantity must be provided for trackable parts" -msgstr "" +msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество" #: order/serializers.py:371 msgid "Line items must be provided" @@ -3630,7 +3622,7 @@ msgstr "" #: order/serializers.py:672 msgid "Sale price currency" -msgstr "" +msgstr "Курс продажи валюты" #: order/serializers.py:742 msgid "No shipment details provided" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3739,7 +3731,7 @@ msgstr "Редактировать заказ на закупку" #: order/templates/order/order_cancel.html:8 msgid "Cancelling this order means that the order and line items will no longer be editable." -msgstr "" +msgstr "Отмена этого заказа означает, что заказ и его элементы нельзя будет редактировать." #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" @@ -3761,7 +3753,7 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" -msgstr "" +msgstr "В представленных данных присутствуют ошибки" #: order/templates/order/order_wizard/match_parts.html:21 #: part/templates/part/import_wizard/match_fields.html:29 @@ -3786,7 +3778,7 @@ msgstr "Выберите деталь поставщика" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "Шаг %(step)s из %(count)s" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3946,33 +3938,33 @@ msgstr "" #: order/templates/order/sales_order_cancel.html:8 #: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" -msgstr "" +msgstr "Предупреждение" #: order/templates/order/sales_order_cancel.html:9 msgid "Cancelling this order means that the order will no longer be editable." -msgstr "" +msgstr "Отмена этого заказа означает, что заказ нельзя будет редактировать." -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "Действия" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" #: order/views.py:99 msgid "Cancel Order" -msgstr "" +msgstr "Отменить заказ" #: order/views.py:108 order/views.py:134 msgid "Confirm order cancellation" @@ -3984,7 +3976,7 @@ msgstr "" #: order/views.py:125 msgid "Cancel sales order" -msgstr "" +msgstr "Отменить заказ на продажу" #: order/views.py:151 msgid "Issue Order" @@ -4021,11 +4013,11 @@ msgstr "Заказано {n} деталей" #: order/views.py:858 msgid "Sales order not found" -msgstr "" +msgstr "Заказ на продажу не найден" #: order/views.py:864 msgid "Price not found" -msgstr "" +msgstr "Цена не найдена" #: order/views.py:867 #, python-brace-format @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "Доступный запас" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "Ключевые слова по умолчанию" msgid "Default keywords for parts in this category" msgstr "Ключевые слова по умолчанию для деталей этой категории" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "Наименование детали" @@ -4208,12 +4202,12 @@ msgstr "Ключевые слова" msgid "Part keywords to improve visibility in search results" msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "Категория" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "Категория" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,9 +4230,9 @@ msgid "Part revision or version number" msgstr "Версия детали" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" -msgstr "" +msgstr "Версия" #: part/models.py:885 msgid "Where is this item normally stored?" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" -msgstr "" +msgstr "Шаблон параметра" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "Артикул или наименование детали" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "Артикул" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "Наименование детали" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "IPN" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" -msgstr "" +msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" -msgstr "" +msgstr "Подходящая деталь не найдена" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4645,7 +4639,7 @@ msgstr "" #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." -msgstr "" +msgstr "У вас нет прав редактировать BOM." #: part/templates/part/bom.html:15 #, python-format @@ -4662,13 +4656,13 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "Действия с BOM" #: part/templates/part/bom.html:34 msgid "Delete Items" -msgstr "" +msgstr "Удалить элементы" #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" @@ -4725,7 +4719,7 @@ msgstr "Детали (включая подкатегории)" #: part/templates/part/category.html:157 msgid "Create new part" -msgstr "" +msgstr "Создать новую деталь" #: part/templates/part/category.html:158 templates/js/translated/bom.js:365 msgid "New Part" @@ -4765,7 +4759,7 @@ msgstr "Создать деталь" #: part/templates/part/category.html:308 msgid "Create another part after this one" -msgstr "" +msgstr "Создать ещё одну деталь после этой" #: part/templates/part/category.html:309 msgid "Part created successfully" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Наличие на складе" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "Разновидности детали" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" -msgstr "" +msgstr "Создать новую разновидность" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "Новая разновидность" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" -msgstr "" +msgstr "Спецификация" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "Экспорт" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Экспорт BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "Сборки" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "Поставщики" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "Редактировать заметку о детали" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5084,11 +5078,11 @@ msgstr "" #: part/templates/part/part_base.html:97 msgid "Delete part" -msgstr "" +msgstr "Удалить деталь" #: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" -msgstr "" +msgstr "Деталь является шаблоном (из неё можно создавать разновидности)" #: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5131,7 +5125,7 @@ msgstr "" #: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" -msgstr "" +msgstr "Эта деталь является разновидностью %(link)s" #: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5192,7 +5187,7 @@ msgstr "" #: part/templates/part/part_base.html:514 msgid "No matching images found" -msgstr "" +msgstr "Подходящие изображения не найдены" #: part/templates/part/part_base.html:595 msgid "Hide Part Details" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5248,7 +5243,7 @@ msgstr "" #: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" -msgstr "" +msgstr "Внутренняя цена" #: part/templates/part/part_pricing.html:128 #: part/templates/part/prices.html:134 @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5398,7 +5392,7 @@ msgstr "Вернуться в BOM" #: part/templates/part/upload_bom.html:13 msgid "Upload Bill of Materials" -msgstr "" +msgstr "Загрузить спецификацию" #: part/templates/part/upload_bom.html:19 msgid "BOM upload requirements" @@ -5407,7 +5401,7 @@ msgstr "" #: part/templates/part/upload_bom.html:23 #: part/templates/part/upload_bom.html:90 msgid "Upload BOM File" -msgstr "" +msgstr "Загрузить BOM" #: part/templates/part/upload_bom.html:29 msgid "Submit BOM Data" @@ -5415,7 +5409,7 @@ msgstr "" #: part/templates/part/upload_bom.html:37 msgid "Requirements for BOM upload" -msgstr "" +msgstr "Требования для загрузки BOM" #: part/templates/part/upload_bom.html:39 msgid "The BOM file must contain the required named columns as provided in the " @@ -5427,20 +5421,20 @@ msgstr "" #: part/templates/part/upload_bom.html:40 msgid "Each part must already exist in the database" -msgstr "" +msgstr "Каждая деталь уже должна быть в базе данных" #: part/templates/part/variant_part.html:9 msgid "Create new part variant" -msgstr "" +msgstr "Создать новую разновидность детали" #: part/templates/part/variant_part.html:10 #, python-format msgid "Create a new variant of template '%(full_name)s'." -msgstr "" +msgstr "Создать новую разновидность из шаблона '%(full_name)s'." #: part/templatetags/inventree_extras.py:189 msgid "Unknown database" -msgstr "" +msgstr "Неизвестная база данных" #: part/views.py:88 msgid "Set Part Category" @@ -5473,7 +5467,7 @@ msgstr "" #: part/views.py:697 msgid "Part image not found" -msgstr "" +msgstr "Изображение детали не найдено" #: part/views.py:785 msgid "Confirm Part Deletion" @@ -5481,7 +5475,7 @@ msgstr "" #: part/views.py:792 msgid "Part was deleted" -msgstr "" +msgstr "Деталь была удалена" #: part/views.py:801 msgid "Part Pricing" @@ -5545,11 +5539,11 @@ msgstr "" #: plugin/integration.py:138 msgid "No author found" -msgstr "" +msgstr "Автор не найден" #: plugin/integration.py:152 msgid "No date found" -msgstr "" +msgstr "Дата не найдена" #: plugin/models.py:26 msgid "Plugin Configuration" @@ -5613,7 +5607,7 @@ msgstr "" #: plugin/serializers.py:49 msgid "Source URL" -msgstr "" +msgstr "Исходная ссылка" #: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" @@ -5650,11 +5644,11 @@ msgstr "" #: report/models.py:182 msgid "Template name" -msgstr "" +msgstr "Название шаблона" #: report/models.py:188 msgid "Report template file" -msgstr "" +msgstr "Файл шаблона отчёта" #: report/models.py:195 msgid "Report template description" @@ -5744,11 +5738,11 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" -msgstr "" +msgstr "Серийный номер" #: report/templates/report/inventree_test_report_base.html:88 msgid "Test Results" @@ -5884,11 +5878,11 @@ msgstr "" #: stock/models.py:567 msgid "Parent Stock Item" -msgstr "" +msgstr "Родительская единица хранения" #: stock/models.py:576 msgid "Base part" -msgstr "" +msgstr "Базовая деталь" #: stock/models.py:584 msgid "Select a matching supplier part for this stock item" @@ -5953,15 +5947,15 @@ msgstr "" #: stock/models.py:694 msgid "Delete on deplete" -msgstr "" +msgstr "Удалить при обнулении" #: stock/models.py:694 msgid "Delete this Stock Item when stock is depleted" -msgstr "" +msgstr "Удалить эту единицу хранения при обнулении складского запаса" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" -msgstr "" +msgstr "Заметки о единице хранения" #: stock/models.py:713 msgid "Single unit purchase price at time of purchase" @@ -5969,7 +5963,7 @@ msgstr "" #: stock/models.py:1238 msgid "Part is not set as trackable" -msgstr "" +msgstr "Деталь не является отслеживаемой" #: stock/models.py:1244 msgid "Quantity must be integer" @@ -6075,7 +6069,7 @@ msgstr "" #: stock/serializers.py:180 msgid "Purchase currency of this stock item" -msgstr "" +msgstr "Валюта покупки этой единицы хранения" #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" @@ -6104,7 +6098,7 @@ msgstr "" #: stock/serializers.py:363 stock/views.py:1009 msgid "Serial numbers already exist" -msgstr "" +msgstr "Серийные номера уже существуют" #: stock/serializers.py:405 msgid "Select stock item to install" @@ -6116,7 +6110,7 @@ msgstr "" #: stock/serializers.py:428 msgid "Selected part is not in the Bill of Materials" -msgstr "" +msgstr "Выбранная деталь отсутствует в спецификации" #: stock/serializers.py:646 msgid "Part must be salable" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" -msgstr "" +msgstr "Дочерние единицы хранения" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" -msgstr "" +msgstr "Эта единица хранения не имеет дочерних элементов" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" -msgstr "" +msgstr "Установленные единицы хранения" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" -msgstr "" +msgstr "Установить единицу хранения" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6277,7 +6271,7 @@ msgstr "" #: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" -msgstr "" +msgstr "Удалить единицу хранения" #: stock/templates/stock/item_base.html:96 msgid "Uninstall" @@ -6285,7 +6279,7 @@ msgstr "" #: stock/templates/stock/item_base.html:100 msgid "Install stock item" -msgstr "" +msgstr "Установить единицу хранения" #: stock/templates/stock/item_base.html:100 msgid "Install" @@ -6293,7 +6287,7 @@ msgstr "" #: stock/templates/stock/item_base.html:115 msgid "Convert to variant" -msgstr "" +msgstr "Преобразовать в разновидность" #: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" @@ -6391,7 +6385,7 @@ msgstr "" #: stock/templates/stock/item_base.html:350 msgid "Parent Item" -msgstr "" +msgstr "Родительский элемент" #: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "Места хранения" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "Места хранения" @@ -6651,15 +6645,15 @@ msgstr "" #: templates/403.html:5 templates/403.html:11 msgid "Permission Denied" -msgstr "" +msgstr "Доступ запрещён" #: templates/403.html:14 msgid "You do not have permission to view this page." -msgstr "" +msgstr "У вас нет прав для просмотра этой страницы." #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" -msgstr "" +msgstr "Страница не найдена" #: templates/404.html:14 msgid "The requested page does not exist" @@ -6667,11 +6661,11 @@ msgstr "" #: templates/500.html:5 templates/500.html:11 msgid "Internal Server Error" -msgstr "" +msgstr "Внутренняя ошибка сервера" #: templates/500.html:14 msgid "The InvenTree server raised an internal error" -msgstr "" +msgstr "Сервер InvenTree вызвал внутреннюю ошибку" #: templates/500.html:15 msgid "Refer to the error log in the admin interface for further details" @@ -6815,11 +6809,11 @@ msgstr "" #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" -msgstr "" +msgstr "Настройки штрих-кода" #: templates/InvenTree/settings/build.html:8 msgid "Build Order Settings" -msgstr "" +msgstr "Настройки заказа на сборку" #: templates/InvenTree/settings/category.html:7 msgid "Category Settings" @@ -6827,11 +6821,11 @@ msgstr "Настройки категории" #: templates/InvenTree/settings/currencies.html:8 msgid "Currency Settings" -msgstr "" +msgstr "Настройки валюты" #: templates/InvenTree/settings/currencies.html:19 msgid "Base Currency" -msgstr "" +msgstr "Базовая валюта" #: templates/InvenTree/settings/currencies.html:24 msgid "Exchange Rates" @@ -6851,12 +6845,12 @@ msgstr "" #: templates/InvenTree/settings/global.html:9 msgid "Server Settings" -msgstr "" +msgstr "Настройки сервера" #: templates/InvenTree/settings/login.html:9 #: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" -msgstr "" +msgstr "Настройки входа" #: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" @@ -6865,11 +6859,11 @@ msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 #: templates/InvenTree/settings/settings.html:12 templates/navbar.html:131 msgid "Settings" -msgstr "" +msgstr "Настройки" #: templates/InvenTree/settings/mixins/urls.html:5 msgid "URLs" -msgstr "" +msgstr "Ссылки" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format @@ -6878,11 +6872,11 @@ msgstr "" #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" -msgstr "" +msgstr "Открыть в новой вкладке" #: templates/InvenTree/settings/part.html:7 msgid "Part Settings" -msgstr "" +msgstr "Настройки деталей" #: templates/InvenTree/settings/part.html:44 msgid "Part Import" @@ -6894,15 +6888,15 @@ msgstr "" #: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" -msgstr "" +msgstr "Шаблон параметра детали" #: templates/InvenTree/settings/plugin.html:10 msgid "Plugin Settings" -msgstr "" +msgstr "Настройки плагинов" #: templates/InvenTree/settings/plugin.html:16 msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." -msgstr "" +msgstr "Изменение настроек ниже требует немедленного перезапуска InvenTree, не изменяйте их до завершения работы." #: templates/InvenTree/settings/plugin.html:33 msgid "Plugins" @@ -6975,7 +6969,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 msgid "This plugin was found in a local InvenTree path" -msgstr "" +msgstr "Этот плагин был найден в локальном пути InvenTree" #: templates/InvenTree/settings/plugin_settings.html:94 msgid "Installation path" @@ -7014,7 +7008,7 @@ msgstr "Настройки заказа на закупку" #: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 msgid "Report Settings" -msgstr "" +msgstr "Настройки отчётов" #: templates/InvenTree/settings/setting.html:37 msgid "No value set" @@ -7022,61 +7016,61 @@ msgstr "" #: templates/InvenTree/settings/setting.html:42 msgid "Edit setting" -msgstr "" +msgstr "Изменить настройки" #: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" -msgstr "" +msgstr "Изменить настройки плагинов" #: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" -msgstr "" +msgstr "Изменить глобальные настройки" #: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" -msgstr "" +msgstr "Изменить настройки пользователя" #: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" -msgstr "" +msgstr "Шаблоны параметров категории не найдены" #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 msgid "Edit Template" -msgstr "" +msgstr "Редактировать шаблон" #: templates/InvenTree/settings/settings.html:232 #: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" -msgstr "" +msgstr "Удалить шаблон" #: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" -msgstr "" +msgstr "Шаблоны параметров детали не найдены" #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "Настройки пользователя" #: templates/InvenTree/settings/sidebar.html:9 #: templates/InvenTree/settings/user.html:12 msgid "Account Settings" -msgstr "" +msgstr "Настройки учётной записи" #: templates/InvenTree/settings/sidebar.html:11 #: templates/InvenTree/settings/user_display.html:9 msgid "Display Settings" -msgstr "" +msgstr "Настройки отображения" #: templates/InvenTree/settings/sidebar.html:13 msgid "Home Page" -msgstr "" +msgstr "Главная страница" #: templates/InvenTree/settings/sidebar.html:15 #: templates/InvenTree/settings/user_search.html:9 msgid "Search Settings" -msgstr "" +msgstr "Настройки поиска" #: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" @@ -7089,7 +7083,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" -msgstr "" +msgstr "Глобальные настройки" #: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" @@ -7105,7 +7099,7 @@ msgstr "" #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" -msgstr "" +msgstr "Настройки заказов на продажу" #: templates/InvenTree/settings/stock.html:7 msgid "Stock Settings" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7136,7 +7131,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "Следующие адреса электронной почты связаны с вашей учётной записью:" #: templates/InvenTree/settings/user.html:75 msgid "Verified" @@ -7166,19 +7161,19 @@ msgstr "" #: templates/InvenTree/settings/user.html:95 #: templates/InvenTree/settings/user.html:201 msgid "Warning:" -msgstr "" +msgstr "Предупреждение:" #: templates/InvenTree/settings/user.html:96 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." -msgstr "" +msgstr "Вы не указали ни одного адреса электронной почты. Вы должны добавить адрес электронной почты, чтобы получать уведомления, сбрасывать пароль и т.п." #: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" -msgstr "" +msgstr "Добавить адрес электронной почты" #: templates/InvenTree/settings/user.html:109 msgid "Add Email" -msgstr "" +msgstr "Добавить EMail" #: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" @@ -7272,11 +7267,11 @@ msgstr "" #: templates/InvenTree/settings/user.html:266 msgid "Do you really want to remove the selected email address?" -msgstr "" +msgstr "Вы действительно хотите удалить выбранный адрес электронной почты?" #: templates/InvenTree/settings/user_display.html:27 msgid "Theme Settings" -msgstr "" +msgstr "Настройки темы" #: templates/InvenTree/settings/user_display.html:37 msgid "Select theme" @@ -7288,7 +7283,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:56 msgid "Language Settings" -msgstr "" +msgstr "Настройки языка" #: templates/InvenTree/settings/user_display.html:65 msgid "Select language" @@ -7338,11 +7333,11 @@ msgstr "Настройки главной страницы" #: templates/InvenTree/settings/user_labels.html:9 msgid "Label Settings" -msgstr "" +msgstr "Настройки меток" #: templates/InvenTree/settings/user_notifications.html:8 msgid "Notification Settings" -msgstr "" +msgstr "Настройки уведомлений" #: templates/about.html:10 msgid "InvenTree Version Information" @@ -7391,7 +7386,7 @@ msgstr "" #: templates/about.html:73 msgid "View Code on GitHub" -msgstr "" +msgstr "Посмотреть код на GitHub" #: templates/about.html:78 msgid "Credits" @@ -7416,17 +7411,17 @@ msgstr "" #: templates/account/email_confirm.html:6 #: templates/account/email_confirm.html:10 msgid "Confirm Email Address" -msgstr "" +msgstr "Подтверждение адреса электронной почты" #: templates/account/email_confirm.html:16 #, python-format msgid "Please confirm that %(email)s is an email address for user %(user_display)s." -msgstr "" +msgstr "Пожалуйста, подтвердите, что %(email)s является адресом электронной почты пользователя %(user_display)s." #: templates/account/email_confirm.html:27 #, python-format msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." -msgstr "" +msgstr "Эта ссылка для подтверждения электронной почты устарела или является недействительной. Пожалуйста, отправьте новый запрос на подтверждение электронной почты." #: templates/account/login.html:6 templates/account/login.html:16 #: templates/account/login.html:39 @@ -7473,7 +7468,7 @@ msgstr "" #: templates/account/logout.html:19 msgid "Back to Site" -msgstr "" +msgstr "Вернуться на сайт" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 @@ -7482,7 +7477,7 @@ msgstr "" #: templates/account/password_reset.html:18 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." -msgstr "" +msgstr "Забыли пароль? Введите адрес электронной почты ниже, и мы отправим вам письмо для сброса пароля." #: templates/account/password_reset.html:23 msgid "Reset My Password" @@ -7553,7 +7548,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 msgid "Back to settings" -msgstr "" +msgstr "Вернуться к настройкам" #: templates/allauth_2fa/remove.html:6 msgid "Disable Two-Factor Authentication" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7648,7 +7644,7 @@ msgstr "Вы получили это письмо, потому что вы по #: templates/email/email.html:35 msgid "InvenTree version" -msgstr "" +msgstr "Версия InvenTree" #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" @@ -7668,79 +7664,79 @@ msgstr "" #: templates/image_download.html:12 msgid "Remote server must be accessible" -msgstr "" +msgstr "Удалённый сервер должен быть доступен" #: templates/image_download.html:13 msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" -msgstr "" +msgstr "Ошибка 400: Некорректный запрос" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" -msgstr "" +msgstr "API-запрос вернул код ошибки 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" -msgstr "" +msgstr "Ошибка 401: Авторизация не выполнена" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" -msgstr "" +msgstr "Ошибка 403: Доступ запрещён" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" -msgstr "" +msgstr "У вас нет прав доступа к этой функции" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" -msgstr "" +msgstr "Ошибка 404: Ресурс не найден" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" -msgstr "" +msgstr "Ошибка 405: Метод не разрешён" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" -msgstr "" +msgstr "Ошибка 408: Таймаут" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" -msgstr "" +msgstr "Необработанная ошибка" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" -msgstr "" +msgstr "Код ошибки" #: templates/js/translated/attachment.js:78 msgid "No attachments found" -msgstr "" +msgstr "Вложение не найдено" #: templates/js/translated/attachment.js:100 msgid "Edit Attachment" @@ -7788,7 +7784,7 @@ msgstr "" #: templates/js/translated/barcode.js:92 msgid "Server error" -msgstr "" +msgstr "Ошибка сервера" #: templates/js/translated/barcode.js:113 msgid "Unknown response from server" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7875,7 +7870,7 @@ msgstr "" #: templates/js/translated/bom.js:249 msgid "Download BOM Template" -msgstr "" +msgstr "Скачать шаблон BOM" #: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 #: templates/js/translated/order.js:429 templates/js/translated/tables.js:53 @@ -7971,57 +7966,65 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" -msgstr "" +msgstr "Редактировать элемент BOM" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" -msgstr "" +msgstr "Удалить элемент BOM" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" -msgstr "" +msgstr "Элементы BOM не найдены" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" -msgstr "" +msgstr "Вы уверены, что хотите удалить этот элемент BOM?" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" -msgstr "" +msgstr "Унаследовано от родительского BOM" #: templates/js/translated/build.js:86 msgid "Edit Build Order" @@ -8055,7 +8058,7 @@ msgstr "" #: templates/js/translated/build.js:226 msgid "The Bill of Materials contains trackable parts" -msgstr "" +msgstr "Спецификация содержит отслеживаемые детали" #: templates/js/translated/build.js:227 msgid "Build outputs must be generated individually" @@ -8063,7 +8066,7 @@ msgstr "" #: templates/js/translated/build.js:235 msgid "Trackable parts can have serial numbers specified" -msgstr "" +msgstr "Отслеживаемые детали могут иметь серийные номера" #: templates/js/translated/build.js:236 msgid "Enter serial numbers to generate multiple single build outputs" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Подтвердите выделение запасов" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8325,43 +8328,43 @@ msgstr "" #: templates/js/translated/company.js:480 msgid "No manufacturer parts found" -msgstr "Информация о производителе не найдена" +msgstr "Информация о детали производителя не найдена" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" -msgstr "" +msgstr "Деталь-шаблон" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "Параметры не найдены" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "Удалить параметр" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "Удалить параметр" #: templates/js/translated/company.js:737 msgid "No supplier parts found" -msgstr "" +msgstr "Информация о детали поставщика не найдена" #: templates/js/translated/filters.js:178 #: templates/js/translated/filters.js:441 @@ -8379,7 +8382,7 @@ msgstr "" #: templates/js/translated/filters.js:288 msgid "Download data" -msgstr "" +msgstr "Скачать данные" #: templates/js/translated/filters.js:291 msgid "Reload data" @@ -8429,7 +8432,7 @@ msgstr "" #: templates/js/translated/forms.js:1194 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" -msgstr "" +msgstr "Форма содержит ошибки" #: templates/js/translated/forms.js:1623 msgid "No results found" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8524,13 +8531,13 @@ msgstr "" #: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 #: templates/js/translated/modals.js:610 msgid "Cancel" -msgstr "" +msgstr "Отменить" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 #: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" -msgstr "" +msgstr "Подтвердить" #: templates/js/translated/modals.js:118 msgid "Form Title" @@ -8562,7 +8569,7 @@ msgstr "" #: templates/js/translated/modals.js:949 msgid "Error posting form data" -msgstr "" +msgstr "Ошибка отправки данных формы" #: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" @@ -8570,50 +8577,50 @@ msgstr "" #: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" -msgstr "" +msgstr "Ошибка 400: Некорректный запрос" #: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" -msgstr "" +msgstr "Сервер вернул код ошибки 400" #: templates/js/translated/modals.js:1085 msgid "Error requesting form data" -msgstr "" +msgstr "Ошибка запроса данных формы" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "Код компании" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "Код склада" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "Код места хранения" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "Код сборки" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "Код заказа" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "Код категории" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "Код детали производителя" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "Код детали поставщика" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "Заказов на закупку не найдено" @@ -8738,20 +8745,20 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" #: templates/js/translated/order.js:1256 templates/js/translated/order.js:2376 msgid "Total Price" -msgstr "" +msgstr "Общая стоимость" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8878,15 +8885,15 @@ msgstr "Атрибуты детали" #: templates/js/translated/part.js:59 msgid "Part Creation Options" -msgstr "" +msgstr "Настройки создания детали" #: templates/js/translated/part.js:63 msgid "Part Duplication Options" -msgstr "" +msgstr "Настройки дублирования детали" #: templates/js/translated/part.js:67 msgid "Supplier Options" -msgstr "" +msgstr "Настройки поставщика" #: templates/js/translated/part.js:81 msgid "Add Part Category" @@ -8922,11 +8929,11 @@ msgstr "" #: templates/js/translated/part.js:208 msgid "Add Supplier Data" -msgstr "" +msgstr "Добавить данные поставщика" #: templates/js/translated/part.js:209 msgid "Create initial supplier data for this part" -msgstr "" +msgstr "Создать начальные данные поставщика для этой детали" #: templates/js/translated/part.js:265 msgid "Copy Image" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "Детали не найдены" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "Нет категории" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "Отслеживаемая деталь" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "Разновидности не найдены" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "Детали не найдены" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "Нет категории" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "Список" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "Таблица" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "Дерево" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "Путь" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9128,7 +9143,7 @@ msgstr "" #: templates/js/translated/report.js:75 msgid "Select Report Template" -msgstr "" +msgstr "Выберите шаблон отчёта" #: templates/js/translated/report.js:90 msgid "Select Test Report Template" @@ -9142,7 +9157,7 @@ msgstr "" #: templates/js/translated/report.js:243 templates/js/translated/report.js:297 #: templates/js/translated/report.js:351 msgid "No Reports Found" -msgstr "" +msgstr "Отчёты не найдены" #: templates/js/translated/report.js:137 msgid "No report templates found which match selected stock item(s)" @@ -9188,11 +9203,11 @@ msgstr "Выберите заказ на продажу" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9234,7 +9249,7 @@ msgstr "" #: templates/js/translated/stock.js:403 msgid "Created multiple stock items" -msgstr "" +msgstr "Создано несколько единиц хранения" #: templates/js/translated/stock.js:428 msgid "Find Serial Number" @@ -9266,19 +9281,19 @@ msgstr "" #: templates/js/translated/stock.js:679 msgid "Warning: Merge operation cannot be reversed" -msgstr "" +msgstr "Предупреждение: Операция объединения не может быть отменена" #: templates/js/translated/stock.js:680 msgid "Some information will be lost when merging stock items" -msgstr "" +msgstr "Следующие данные будут потеряны в процессе объединения" #: templates/js/translated/stock.js:682 msgid "Stock transaction history will be deleted for merged items" -msgstr "" +msgstr "История складских перемещений будет удалена для объединённых элементов" #: templates/js/translated/stock.js:683 msgid "Supplier part information will be deleted for merged items" -msgstr "" +msgstr "Информация о деталях поставщика будет удалена для объединённых элементов" #: templates/js/translated/stock.js:769 msgid "Confirm stock item merge" @@ -9535,7 +9550,7 @@ msgstr "" #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" -msgstr "" +msgstr "Отслеживаемая деталь" #: templates/js/translated/table_filters.js:60 msgid "Assembled Part" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Доступный запас" +msgid "In stock" +msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" @@ -9881,7 +9904,7 @@ msgstr "" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "База данных" #: templates/stats.html:26 msgid "Server is running in debug mode" @@ -9921,19 +9944,19 @@ msgstr "" #: templates/stats.html:64 msgid "Background Worker" -msgstr "" +msgstr "Фоновый процесс" #: templates/stats.html:67 msgid "Background worker not running" -msgstr "" +msgstr "Фоновый процесс не запущен" #: templates/stats.html:75 msgid "Email Settings" -msgstr "" +msgstr "Настройки электронной почты" #: templates/stats.html:78 msgid "Email settings not configured" -msgstr "" +msgstr "Электронная почта не настроена" #: templates/stock_table.html:17 msgid "Barcode Actions" @@ -9945,7 +9968,7 @@ msgstr "" #: templates/stock_table.html:40 msgid "Stock Options" -msgstr "" +msgstr "Настройки склада" #: templates/stock_table.html:45 msgid "Add to selected stock items" @@ -10017,7 +10040,7 @@ msgstr "" #: users/admin.py:211 msgid "Permissions" -msgstr "" +msgstr "Права доступа" #: users/admin.py:214 msgid "Important dates" @@ -10025,7 +10048,7 @@ msgstr "" #: users/models.py:201 msgid "Permission set" -msgstr "" +msgstr "Права доступа" #: users/models.py:209 msgid "Group" @@ -10033,15 +10056,15 @@ msgstr "" #: users/models.py:212 msgid "View" -msgstr "" +msgstr "Вид" #: users/models.py:212 msgid "Permission to view items" -msgstr "" +msgstr "Разрешение на просмотр элементов" #: users/models.py:214 msgid "Permission to add items" -msgstr "" +msgstr "Разрешение на добавление элементов" #: users/models.py:216 msgid "Change" @@ -10049,9 +10072,9 @@ msgstr "" #: users/models.py:216 msgid "Permissions to edit items" -msgstr "" +msgstr "Разрешение на редактирование элементов" #: users/models.py:218 msgid "Permission to delete items" -msgstr "" +msgstr "Разрешение на удаление элементов" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 5b4aaaa9a5..d86be8c8ef 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -135,7 +135,7 @@ msgstr "Välj fil att bifoga" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "" @@ -154,8 +154,8 @@ msgstr "Fil kommentar" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "Ogiltigt val" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Namn" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Namn" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Beskrivning" @@ -241,7 +241,7 @@ msgstr "Beskrivning (valfritt)" msgid "parent" msgstr "överordnad" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" @@ -655,7 +655,7 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 81835c69c0..69deb870fe 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -135,7 +135,7 @@ msgstr "" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "" @@ -154,8 +154,8 @@ msgstr "" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "" @@ -241,7 +241,7 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "" @@ -655,7 +655,7 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "" @@ -806,7 +806,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index a71fd97f43..d6d5f7c335 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -70,20 +70,20 @@ msgstr "Kategori Seçin" #: InvenTree/forms.py:236 msgid "Email (again)" -msgstr "" +msgstr "E-posta (tekrar)" #: InvenTree/forms.py:240 msgid "Email address confirmation" -msgstr "" +msgstr "E-posta adresi onayı" #: InvenTree/forms.py:260 msgid "You must type the same email each time." -msgstr "" +msgstr "Her seferind eaynı e-posta adresini yazmalısınız." #: InvenTree/helpers.py:442 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "Tekrarlanan seri no:{sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 #: stock/views.py:983 @@ -103,7 +103,7 @@ msgstr "Geçersiz grup: {g}" #: InvenTree/helpers.py:518 #, python-brace-format msgid "Invalid/no group {group}" -msgstr "" +msgstr "Geçersiz grup: {group}" #: InvenTree/helpers.py:524 msgid "No serial numbers found" @@ -116,11 +116,11 @@ msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşme #: InvenTree/models.py:185 msgid "Missing file" -msgstr "" +msgstr "Eksik dosya" #: InvenTree/models.py:186 msgid "Missing external link" -msgstr "" +msgstr "Bozuk dış bağlantı" #: InvenTree/models.py:197 stock/models.py:2138 #: templates/js/translated/attachment.js:119 @@ -135,7 +135,7 @@ msgstr "Eklenecek dosyayı seç" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "Bağlantı" @@ -154,8 +154,8 @@ msgstr "Dosya yorumu" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -167,28 +167,28 @@ msgstr "yükleme tarihi" #: InvenTree/models.py:241 msgid "Filename must not be empty" -msgstr "" +msgstr "Dosya adı boş olamaz" #: InvenTree/models.py:264 msgid "Invalid attachment directory" -msgstr "" +msgstr "Ek dosya yolu geçersiz" #: InvenTree/models.py:274 #, python-brace-format msgid "Filename contains illegal character '{c}'" -msgstr "" +msgstr "Dosya adı geçersiz karakterler içeriyor'{c}'" #: InvenTree/models.py:277 msgid "Filename missing extension" -msgstr "" +msgstr "Dosya uzantısı yok" #: InvenTree/models.py:284 msgid "Attachment with this filename already exists" -msgstr "" +msgstr "Aynı isimli başka bir dosya zaten var" #: InvenTree/models.py:291 msgid "Error renaming file" -msgstr "" +msgstr "Dosya adı değiştirilirken hata" #: InvenTree/models.py:326 msgid "Invalid choice" @@ -196,21 +196,21 @@ msgstr "Geçersiz seçim" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "Adı" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "Adı" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Açıklama" @@ -241,59 +241,59 @@ msgstr "Açıklama (isteğe bağlı)" msgid "parent" msgstr "üst" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" #: InvenTree/serializers.py:299 msgid "Filename" -msgstr "" +msgstr "Dosya adı" #: InvenTree/serializers.py:334 msgid "Invalid value" -msgstr "" +msgstr "Geçersiz değer" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "Veri Dosyası" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "Yüklemek istediğiniz dosyayı seçin" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Desteklenmeyen dsoya tipi" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "Dosya boyutu çok büyük" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "Dosyada kolon bulunamadı" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "Dosyada satır bulunamadı" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Dosyada satır bulunamadı" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "Dosyada uygun kolon bulunamadı" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Gerekli kolon ismi eksik:'{name}'" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" -msgstr "" +msgstr "Tekrarlanan kolon ismi:'{col}'" #: InvenTree/settings.py:665 msgid "German" @@ -313,7 +313,7 @@ msgstr "İspanyolca" #: InvenTree/settings.py:669 msgid "Spanish (Mexican)" -msgstr "" +msgstr "İspanyolca(Meksika)" #: InvenTree/settings.py:670 msgid "French" @@ -325,7 +325,7 @@ msgstr "İbranice" #: InvenTree/settings.py:672 msgid "Hungarian" -msgstr "" +msgstr "Macarca" #: InvenTree/settings.py:673 msgid "Italian" @@ -353,7 +353,7 @@ msgstr "Polonyaca" #: InvenTree/settings.py:679 msgid "Portugese" -msgstr "" +msgstr "Portekizce" #: InvenTree/settings.py:680 msgid "Russian" @@ -373,7 +373,7 @@ msgstr "Türkçe" #: InvenTree/settings.py:684 msgid "Vietnamese" -msgstr "" +msgstr "Vietnamca" #: InvenTree/settings.py:685 msgid "Chinese" @@ -504,7 +504,7 @@ msgstr "Alt ögeyi ayır" #: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2005 msgid "Merged stock items" -msgstr "" +msgstr "Stok parçalarını birleştir" #: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 msgid "Sent to customer" @@ -655,7 +655,7 @@ msgstr "Yapım İşi Emri" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "Yapım işinin kısa açıklaması" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Üst Yapım İşi" @@ -691,13 +691,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:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği satış emri" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Kaynak Konum" @@ -798,7 +798,7 @@ 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:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Tamamlama tarihi" @@ -806,7 +806,7 @@ msgstr "Tamamlama tarihi" msgid "completed by" msgstr "tamamlayan" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "Veren" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "Bu yapım işi emrini veren kullanıcı" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Sorumlu" @@ -827,7 +827,7 @@ msgstr "Sorumlu" msgid "User responsible for this build order" msgstr "Bu yapım işi emrinden sorumlu kullanıcı" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "Harici Bağlantı" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "Yapım İşi" @@ -911,7 +911,7 @@ msgstr "Yapım işi için tahsis edilen parçalar" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "Kaynak stok kalemi" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "Kaynak stok kalemi" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "Yapım işi çıktısı için miktarını girin" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ 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:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "Hedeflenen tarih" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "Vadesi geçmiş" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Tamamlandı" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "Sipariş Emri" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Veren" @@ -1295,32 +1295,36 @@ msgstr "Tamamlanmamış yapım işi çıktıları kaldığı için yapım işi e msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Yapım İşi Detayları" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Stok Kaynağı" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Hedef" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Hedef konumu belirtilmedi" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "Toplu" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "Oluşturuldu" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Hedef tarih ayarlanmadı" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Yapım İşi tamamlanmadı" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "Alt Yapım İşi Emrileri" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Yapım İşi için Stok Tahsis Et" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "Stok tahsisini kaldır" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Stok Tahsisini Kaldır" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Stok Tahsis Et" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Gerekli parçaları sipariş edin" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Parça Siparişi" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edildi" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edilemedi" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğesine sahip değil" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "Tamamlanmamış Yapım İşi Çıktıları" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "Yeni yapım işi çıktısı oluştur" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "Yazdırma İşlemleri" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "Etiketleri yazdır" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "Tamamlanmış Yapım İşi Çıktıları" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Ekler" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Yapım İşi Notları" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Notları Düzenle" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "Yeni Yapım İşi Emri" @@ -1703,7 +1695,7 @@ msgstr "Kategori Paremetre Sablonu Kopyala" msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "Şablon" msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "Montaj" @@ -1724,7 +1716,7 @@ 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:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "Bileşen" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "Satılabilir" @@ -1752,7 +1744,7 @@ msgstr "Parçalar varsayılan olarak satılabilir" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "Takip Edilebilir" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "Fiyat" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Dosya Yükle" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "Üretici seçin" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "ÜPN" @@ -2655,7 +2647,7 @@ msgstr "Parametre adı" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Değer" @@ -2663,10 +2655,10 @@ msgstr "Değer" msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Tedarikçi" @@ -2696,7 +2688,7 @@ msgstr "Tedarikçi seçin" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "SKU" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Not" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "Paketleme" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "çoklu" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Tedarikçi Parçaları" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Yeni tedarikçi parçası oluştur" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "Yeni Tedarikçi Parçası" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Parçaları sil" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Parçaları Sil" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Tedarikçi Stoku" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Yeni satın alma emri oluştur" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Yeni Satın Alma Emri" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "Satış Emirleri" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Yeni satış emri oluştur" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Yeni Satış Emri" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "Atanan Stok" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "Üreticiler" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Parça siparişi" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "Tedarikçi parçalarını sil" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "Tedarikçi Parça Stoku" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "Tedarikçi Parçası Emirleri" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Stok" @@ -3163,7 +3155,7 @@ msgstr "Fiyatlandırma" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "Müşteriler" msgid "New Customer" msgstr "Yeni Müşteri" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Şirketler" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "Tedarikçi Parçası Seçin" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "Sipariş Emri için Dosya Yükle" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Sipariş Notları" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "Uyarı" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "İşlemler" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Parça Kategorileri" @@ -4144,7 +4138,7 @@ msgstr "Parça Kategorileri" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "En son seri numarası" msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "Parça adı" @@ -4208,12 +4202,12 @@ msgstr "Anahtar kelimeler" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "DPN" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "Revizyon" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 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:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Gerekli" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 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:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: part/models.py:2774 +#: part/models.py:2775 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:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Parça Stoku" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "Parça Test Şablonları" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "Test Şablonu Ekle" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "Parça Çeşitleri" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "Yeni çeşit oluştur" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "Yeni Çeşit" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "Parça Tedarikçileri" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "Pasif" @@ -5164,12 +5158,13 @@ msgstr "Satış Emirleri için Gerekli" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "Toplam Maliyet" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "Aşağıdaki parçalara kategori ayarla" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "Stok Yok" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "Alt konumlar" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "Stok Konumları" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "Dosya Ekle" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Mevcut" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Cevap Yok" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Stok Kalemlerini bu konuma kaydet" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Stok kalemi zaten bu konumda" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Konuma Kaydet" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "Barkod geçerli bir konumla eşleşmiyor" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "Gerekli Parça" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Stok tahsisini düzenle" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Stok tahsisini sil" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Parçaları Seçin" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Stok tahsisini onayla" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "Şablon Parça" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Çeşit bulunamadı" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "Çeşit bulunamadı" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "Katagori Yok" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "Sorgu ile eşleşen test şablonu bulunamadı" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9759,181 +9778,185 @@ msgstr "" #: templates/js/translated/tables.js:443 msgid "Showing" -msgstr "" +msgstr "Gösteriliyor" #: templates/js/translated/tables.js:443 msgid "to" -msgstr "" +msgstr "için" #: templates/js/translated/tables.js:443 msgid "of" -msgstr "" +msgstr "yüzünden" #: templates/js/translated/tables.js:443 msgid "rows" -msgstr "" +msgstr "satırlar" #: templates/js/translated/tables.js:447 templates/navbar.html:94 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" -msgstr "" +msgstr "Arama" #: templates/js/translated/tables.js:450 msgid "No matching results" -msgstr "" +msgstr "Sonuç bulunamadı" #: templates/js/translated/tables.js:453 msgid "Hide/Show pagination" -msgstr "" +msgstr "Sayfalandırmayı Göster" #: templates/js/translated/tables.js:456 msgid "Refresh" -msgstr "" +msgstr "Yenile" #: templates/js/translated/tables.js:459 msgid "Toggle" -msgstr "" +msgstr "Değiştir" #: templates/js/translated/tables.js:462 msgid "Columns" -msgstr "" +msgstr "Sütunlar" #: templates/js/translated/tables.js:465 msgid "All" -msgstr "" +msgstr "Tümü" #: templates/navbar.html:42 msgid "Buy" -msgstr "" +msgstr "Al" #: templates/navbar.html:54 msgid "Sell" -msgstr "" +msgstr "Sat" #: templates/navbar.html:108 msgid "Show Notifications" -msgstr "" +msgstr "Bildirimleri Göster" #: templates/navbar.html:111 msgid "New Notifications" -msgstr "" +msgstr "Yeni Bildirimler" #: templates/navbar.html:132 msgid "Logout" -msgstr "" +msgstr "Çıkış" #: templates/navbar.html:134 msgid "Login" -msgstr "" +msgstr "Giriş" #: templates/navbar.html:154 msgid "About InvenTree" -msgstr "" +msgstr "InvenTree Hakkında" #: templates/navbar_demo.html:5 msgid "InvenTree demo mode" +msgstr "InvenTree Demo modu" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" msgstr "" #: templates/notifications.html:13 msgid "Show all notifications and history" -msgstr "" +msgstr "Tüm bildirimleri ve içeriğini göster" #: templates/qr_code.html:11 msgid "QR data not provided" -msgstr "" +msgstr "QR sağlanamadı" #: templates/registration/logged_out.html:6 msgid "You were logged out successfully." -msgstr "" +msgstr "Başarıyla çıkış yapıldı." #: templates/registration/logged_out.html:8 msgid "Log in again" -msgstr "" +msgstr "Tekrar giriş yap" #: templates/search.html:9 msgid "Show full search results" -msgstr "" +msgstr "Arama sonuçlarının hepsini göster" #: templates/search.html:12 msgid "Clear search" -msgstr "" +msgstr "Aramayı temizle" #: templates/search.html:16 msgid "Filter results" -msgstr "" +msgstr "Sonuçları filtrele" #: templates/search.html:20 msgid "Close search menu" -msgstr "" +msgstr "Arama menüsünü kapat" #: templates/search.html:35 msgid "No search results" -msgstr "" +msgstr "Arama sonucu yok" #: templates/stats.html:9 msgid "Server" -msgstr "" +msgstr "Sunucu" #: templates/stats.html:13 msgid "Instance Name" -msgstr "" +msgstr "Sistem adı" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "Veritabanı" #: templates/stats.html:26 msgid "Server is running in debug mode" -msgstr "" +msgstr "Sunucu debug modunda çalışıyor" #: templates/stats.html:33 msgid "Docker Mode" -msgstr "" +msgstr "Docker modu" #: templates/stats.html:34 msgid "Server is deployed using docker" -msgstr "" +msgstr "Server docker ile yayınlandı" #: templates/stats.html:39 msgid "Plugin Support" -msgstr "" +msgstr "Eklenti Desteği" #: templates/stats.html:43 msgid "Plugin support enabled" -msgstr "" +msgstr "Eklenti desteği etkin" #: templates/stats.html:45 msgid "Plugin support disabled" -msgstr "" +msgstr "Eklenti desteği devre dışı" #: templates/stats.html:52 msgid "Server status" -msgstr "" +msgstr "Sunucu Durumu" #: templates/stats.html:55 msgid "Healthy" -msgstr "" +msgstr "Sağlıklı" #: templates/stats.html:57 msgid "Issues detected" -msgstr "" +msgstr "Sorun algılandı" #: templates/stats.html:64 msgid "Background Worker" -msgstr "" +msgstr "Arkaplan işi" #: templates/stats.html:67 msgid "Background worker not running" -msgstr "" +msgstr "Arkaplan işleri çalışmıyor" #: templates/stats.html:75 msgid "Email Settings" -msgstr "" +msgstr "E-posta Ayarları" #: templates/stats.html:78 msgid "Email settings not configured" -msgstr "" +msgstr "E-posta ayarları yapılandırılmadı" #: templates/stock_table.html:17 msgid "Barcode Actions" @@ -9941,117 +9964,117 @@ msgstr "Barkod İşlemleri" #: templates/stock_table.html:33 msgid "Print test reports" -msgstr "" +msgstr "Test raporunu yazdır" #: templates/stock_table.html:40 msgid "Stock Options" -msgstr "" +msgstr "Stok Seçenekleri" #: templates/stock_table.html:45 msgid "Add to selected stock items" -msgstr "" +msgstr "Seçili stok parçalarını ekle" #: templates/stock_table.html:46 msgid "Remove from selected stock items" -msgstr "" +msgstr "Seçili stok parçalarını kaldır" #: templates/stock_table.html:47 msgid "Stocktake selected stock items" -msgstr "" +msgstr "Seçili stok parçalarını değerlendir" #: templates/stock_table.html:48 msgid "Move selected stock items" -msgstr "" +msgstr "Stok parçalarını taşı" #: templates/stock_table.html:49 msgid "Merge selected stock items" -msgstr "" +msgstr "Seçili stok parçalarını birleştir" #: templates/stock_table.html:49 msgid "Merge stock" -msgstr "" +msgstr "Stok birlşetirme" #: templates/stock_table.html:50 msgid "Order selected items" -msgstr "" +msgstr "Seçili parçaları sırala" #: templates/stock_table.html:52 msgid "Change status" -msgstr "" +msgstr "Durumu Değiştir" #: templates/stock_table.html:52 msgid "Change stock status" -msgstr "" +msgstr "Stok durumunu değiştir" #: templates/stock_table.html:55 msgid "Delete selected items" -msgstr "" +msgstr "Seçili parçaları sil" #: templates/stock_table.html:55 msgid "Delete stock" -msgstr "" +msgstr "Parça sil" #: templates/yesnolabel.html:4 msgid "Yes" -msgstr "" +msgstr "Evet" #: templates/yesnolabel.html:6 msgid "No" -msgstr "" +msgstr "Hayır" #: users/admin.py:64 msgid "Users" -msgstr "" +msgstr "Kullanıcılar" #: users/admin.py:65 msgid "Select which users are assigned to this group" -msgstr "" +msgstr "Bu gruba atanacak kullanıcıyı seçin" #: users/admin.py:187 msgid "The following users are members of multiple groups:" -msgstr "" +msgstr "Aşağıdaki kullanıcılar birden çok grubun üyesi:" #: users/admin.py:210 msgid "Personal info" -msgstr "" +msgstr "Kullanıcı bilgisi" #: users/admin.py:211 msgid "Permissions" -msgstr "" +msgstr "Yetkiler" #: users/admin.py:214 msgid "Important dates" -msgstr "" +msgstr "Önemli tarihler" #: users/models.py:201 msgid "Permission set" -msgstr "" +msgstr "İzinleri ayarla" #: users/models.py:209 msgid "Group" -msgstr "" +msgstr "Grup" #: users/models.py:212 msgid "View" -msgstr "" +msgstr "Görünüm" #: users/models.py:212 msgid "Permission to view items" -msgstr "" +msgstr "Parçayı görüntüleme izni" #: users/models.py:214 msgid "Permission to add items" -msgstr "" +msgstr "Parça ekleme izni" #: users/models.py:216 msgid "Change" -msgstr "" +msgstr "Değiştir" #: users/models.py:216 msgid "Permissions to edit items" -msgstr "" +msgstr "Parçaları düzenleme izni" #: users/models.py:218 msgid "Permission to delete items" -msgstr "" +msgstr "Parçaları silme izni" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index 13157d5bdc..eb9bbb16f5 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -135,7 +135,7 @@ msgstr "" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "" @@ -154,8 +154,8 @@ msgstr "" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "Mô tả" @@ -241,7 +241,7 @@ msgstr "Mô tả (tùy chọn)" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "" @@ -655,7 +655,7 @@ msgstr "Tạo đơn hàng" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "Ngày hoàn thành" @@ -806,7 +806,7 @@ msgstr "Ngày hoàn thành" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "Đã hoàn thành" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "" @@ -1752,7 +1744,7 @@ msgstr "" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" @@ -2492,7 +2484,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "" @@ -2655,7 +2647,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2663,10 +2655,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "Nhà cung cấp" @@ -2696,7 +2688,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -2741,7 +2733,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "" msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2966,7 +2958,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "" @@ -3009,12 +3001,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "Kiện hàng" @@ -3163,7 +3155,7 @@ msgstr "" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "Đơn hàng" @@ -3447,7 +3439,7 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4144,7 +4138,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "" @@ -4208,12 +4202,12 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "Giới thiệu" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 11b7c3b23a..e2f163a10b 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-30 02:38+0000\n" -"PO-Revision-Date: 2022-03-30 02:45\n" +"POT-Creation-Date: 2022-04-12 21:44+0000\n" +"PO-Revision-Date: 2022-04-12 21:46\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -135,7 +135,7 @@ msgstr "选择附件" #: company/models.py:564 order/models.py:127 part/models.py:868 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1364 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1419 msgid "Link" msgstr "链接" @@ -154,8 +154,8 @@ msgstr "文件注释" #: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 #: common/models.py:1397 common/models.py:1618 common/models.py:1619 -#: common/models.py:1848 common/models.py:1849 part/models.py:2344 -#: part/models.py:2364 +#: common/models.py:1848 common/models.py:1849 part/models.py:2345 +#: part/models.py:2365 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2467 msgid "User" @@ -196,21 +196,21 @@ msgstr "选择无效" #: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 #: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: part/models.py:2529 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:320 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1671 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:606 +#: templates/js/translated/part.js:745 templates/js/translated/part.js:1726 #: templates/js/translated/stock.js:2267 msgid "Name" msgstr "名称" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 @@ -222,13 +222,13 @@ msgstr "名称" #: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1992 templates/js/translated/company.js:345 +#: templates/js/translated/build.js:2007 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1294 templates/js/translated/part.js:1690 -#: templates/js/translated/part.js:1759 templates/js/translated/stock.js:1665 +#: templates/js/translated/part.js:665 templates/js/translated/part.js:1060 +#: templates/js/translated/part.js:1333 templates/js/translated/part.js:1745 +#: templates/js/translated/part.js:1814 templates/js/translated/stock.js:1665 #: templates/js/translated/stock.js:2279 templates/js/translated/stock.js:2317 msgid "Description" msgstr "描述信息" @@ -241,7 +241,7 @@ msgstr "描述 (可选)" msgid "parent" msgstr "上级项" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2848 msgid "Must be a valid number" msgstr "必须是有效数字" @@ -655,7 +655,7 @@ msgstr "生产订单" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 @@ -668,7 +668,7 @@ msgid "Build Order Reference" msgstr "相关生产订单" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2759 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 @@ -682,7 +682,7 @@ msgid "Brief description of the build" msgstr "生产的简短描述." #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "上级生产" @@ -691,13 +691,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:673 part/templates/part/part_app_base.html:8 +#: part/models.py:2291 part/models.py:2307 part/models.py:2326 +#: part/models.py:2343 part/models.py:2445 part/models.py:2567 +#: part/models.py:2657 part/models.py:2734 part/models.py:3024 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -707,15 +707,15 @@ msgstr "此次生产匹配的订单" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 #: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1684 -#: templates/js/translated/build.js:1997 templates/js/translated/company.js:492 +#: templates/js/translated/build.js:1284 templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:2012 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1078 templates/js/translated/part.js:1272 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1045 +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1311 #: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 #: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 #: templates/js/translated/stock.js:2542 templates/js/translated/stock.js:2641 @@ -735,7 +735,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1672 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1687 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "来源地点" @@ -798,7 +798,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2074 +#: templates/js/translated/build.js:2089 msgid "Completion Date" msgstr "完成日期:" @@ -806,7 +806,7 @@ msgstr "完成日期:" msgid "completed by" msgstr "完成人" -#: build/models.py:316 templates/js/translated/build.js:2042 +#: build/models.py:316 templates/js/translated/build.js:2057 msgid "Issued by" msgstr "发布者" @@ -815,11 +815,11 @@ msgid "User who issued this build order" msgstr "发布此生产订单的用户" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 #: order/templates/order/sales_order_base.html:182 part/models.py:1011 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2054 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2069 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "责任人" @@ -827,7 +827,7 @@ msgstr "责任人" msgid "User responsible for this build order" msgstr "负责此生产订单的用户" -#: build/models.py:331 build/templates/build/detail.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:374 stock/models.py:631 @@ -841,13 +841,13 @@ msgstr "外部链接" #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: part/templates/part/part_sidebar.html:60 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 #: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:944 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 #: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1901 @@ -896,7 +896,7 @@ msgid "Selected stock item not found in BOM" msgstr "" #: build/models.py:1325 stock/templates/stock/item_base.html:329 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1970 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1985 #: templates/navbar.html:35 msgid "Build" msgstr "生产" @@ -911,7 +911,7 @@ msgstr "" #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1686 templates/js/translated/build.js:2122 +#: templates/js/translated/build.js:1701 templates/js/translated/build.js:2137 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 @@ -926,13 +926,13 @@ msgstr "源库存项" #: build/models.py:1355 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1429 +#: build/templates/build/detail.html:34 common/models.py:1429 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2750 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -944,18 +944,18 @@ msgstr "源库存项" #: stock/templates/stock/item_base.html:181 #: stock/templates/stock/item_base.html:246 #: stock/templates/stock/item_base.html:254 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:778 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 #: templates/js/translated/build.js:922 templates/js/translated/build.js:1311 -#: templates/js/translated/build.js:1687 -#: templates/js/translated/model_renderers.js:101 +#: templates/js/translated/build.js:1702 +#: templates/js/translated/model_renderers.js:107 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1902 templates/js/translated/part.js:2124 -#: templates/js/translated/part.js:2158 templates/js/translated/part.js:2236 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:945 +#: templates/js/translated/part.js:1957 templates/js/translated/part.js:2179 +#: templates/js/translated/part.js:2213 templates/js/translated/part.js:2291 #: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 #: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2452 #: templates/js/translated/stock.js:2554 @@ -999,7 +999,7 @@ msgid "Enter quantity for build output" msgstr "输入生产产出数量" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:503 part/serializers.py:840 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 #: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1042,8 +1042,8 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 #: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 #: templates/js/translated/build.js:1323 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 @@ -1058,9 +1058,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 +#: build/templates/build/detail.html:62 order/models.py:579 #: order/serializers.py:290 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2026 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 #: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2421 templates/js/translated/stock.js:2570 @@ -1099,8 +1099,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2874 +#: part/models.py:3016 msgid "BOM Item" msgstr "" @@ -1232,13 +1232,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2066 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2081 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:949 msgid "Target Date" msgstr "预计日期" @@ -1258,15 +1258,15 @@ msgid "Overdue" msgstr "逾期" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2012 +#: templates/js/translated/build.js:2027 #: templates/js/translated/table_filters.js:374 msgid "Completed" msgstr "已完成" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 @@ -1277,7 +1277,7 @@ msgid "Sales Order" msgstr "销售订单" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "发布者" @@ -1295,32 +1295,36 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "是否确定取消生产?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "生产详情" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 +#: build/templates/build/detail.html:80 #: stock/templates/stock/item_base.html:315 #: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2577 #: templates/js/translated/table_filters.js:151 @@ -1328,161 +1332,149 @@ msgstr "" msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2034 +#: templates/js/translated/build.js:2049 msgid "Created" msgstr "已创建" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "无预计日期" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "生产未完成" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "子生产订单" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "为生产分配库存" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1500 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1515 msgid "Unallocate stock" msgstr "未分配库存" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "未分配库存" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "分配库存" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "订单所需部件" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "订购商品" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "未跟踪的库存已完全分配给此生产订单" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "未跟踪的库存尚未完全分配给此生产订单" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "未完成的生产产出" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:264 +#: build/templates/build/detail.html:263 #: stock/templates/stock/location.html:188 templates/stock_table.html:27 msgid "Printing Actions" msgstr "打印操作" -#: build/templates/build/detail.html:268 build/templates/build/detail.html:269 +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 #: stock/templates/stock/location.html:192 templates/stock_table.html:31 msgid "Print labels" msgstr "打印标签" -#: build/templates/build/detail.html:286 +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:121 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "附件" -#: build/templates/build/detail.html:314 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "生产备注" -#: build/templates/build/detail.html:318 build/templates/build/detail.html:402 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "编辑备注" - -#: build/templates/build/detail.html:556 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:557 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 msgid "New Build Order" msgstr "新建生产订单" @@ -1703,7 +1695,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:781 part/models.py:2568 report/models.py:187 +#: common/models.py:781 part/models.py:2569 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:426 msgid "Template" @@ -1713,9 +1705,9 @@ msgstr "模板" msgid "Parts are templates by default" msgstr "" -#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:788 part/models.py:959 templates/js/translated/bom.js:1315 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:442 msgid "Assembly" msgstr "组装" @@ -1724,7 +1716,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:795 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:446 msgid "Component" msgstr "组件" @@ -1741,7 +1733,7 @@ msgid "Parts are purchaseable by default" msgstr "商品默认可购买" #: common/models.py:809 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:454 msgid "Salable" msgstr "可销售" @@ -1752,7 +1744,7 @@ msgstr "商品默认可销售" #: common/models.py:816 part/models.py:971 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:458 msgid "Trackable" msgstr "可追踪" @@ -2354,7 +2346,7 @@ msgstr "" msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1371 part/templates/part/detail.html:40 +#: common/models.py:1371 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" @@ -2368,7 +2360,7 @@ msgstr "" #: common/models.py:1437 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:976 templates/js/translated/part.js:1962 msgid "Price" msgstr "价格" @@ -2461,9 +2453,9 @@ msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "上传文件" @@ -2492,7 +2484,7 @@ msgstr "已导入商品" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2625,7 +2617,7 @@ msgstr "选择制造商" #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:934 msgid "MPN" msgstr "MPN" @@ -2655,7 +2647,7 @@ msgstr "参数名称" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: templates/js/translated/part.js:754 templates/js/translated/stock.js:1296 msgid "Value" msgstr "数值" @@ -2663,10 +2655,10 @@ msgstr "数值" msgid "Parameter value" msgstr "参数值" -#: company/models.py:429 part/models.py:953 part/models.py:2536 +#: company/models.py:429 part/models.py:953 part/models.py:2537 #: part/templates/part/part_base.html:308 #: templates/InvenTree/settings/settings.html:325 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:760 msgid "Units" msgstr "单位" @@ -2685,7 +2677,7 @@ msgstr "" #: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:902 #: templates/js/translated/table_filters.js:397 msgid "Supplier" msgstr "供应商" @@ -2696,7 +2688,7 @@ msgstr "选择供应商" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:920 msgid "SKU" msgstr "SKU" @@ -2717,17 +2709,17 @@ msgid "Supplier part description" msgstr "供应商商品描述" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2762 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "备注" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1847 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" @@ -2741,7 +2733,7 @@ msgstr "打包" msgid "Part packaging" msgstr "商品打包" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1849 msgid "multiple" msgstr "" @@ -2827,129 +2819,129 @@ msgstr "电话" msgid "Upload Image" msgstr "上传图片" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "供应商商品" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "创建新的供应商商品" -#: company/templates/company/detail.html:20 +#: company/templates/company/detail.html:19 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: part/templates/part/detail.html:353 msgid "New Supplier Part" msgstr "新建供应商商品" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 msgid "Options" msgstr "选项" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "订购商品" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "删除商品" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "删除商品" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "制造商商品" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "新建制造商商品" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 msgid "New Manufacturer Part" msgstr "新建制造商商品" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "供货商库存" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/search.js:171 templates/navbar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" msgstr "采购订单" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "新建采购订单" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "新建采购订单" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:188 templates/navbar.html:58 +#: templates/js/translated/search.js:190 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" msgstr "销售订单" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "新建销售订单" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "新建销售订单" -#: company/templates/company/detail.html:168 +#: company/templates/company/detail.html:167 #: templates/js/translated/build.js:1295 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "公司备注" -#: company/templates/company/detail.html:380 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: part/templates/part/detail.html:452 msgid "Delete Supplier Parts?" msgstr "删除供应商商品?" -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:376 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:453 msgid "All selected supplier parts will be deleted" msgstr "删除所有选定的供应商商品" @@ -2966,7 +2958,7 @@ msgstr "制造商" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:80 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "订购商品" @@ -2993,15 +2985,15 @@ msgid "Suppliers" msgstr "供应商" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: part/templates/part/detail.html:364 msgid "Delete supplier parts" msgstr "删除供应商商品" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 #: users/models.py:218 msgid "Delete" msgstr "删除" @@ -3009,12 +3001,12 @@ msgstr "删除" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "参数" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: part/templates/part/detail.html:185 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" @@ -3025,7 +3017,7 @@ msgid "Delete parameters" msgstr "删除参数" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:865 msgid "Add Parameter" msgstr "添加参数" @@ -3076,12 +3068,12 @@ msgid "Supplier Part Stock" msgstr "供货商商品库存" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:167 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:168 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 #: templates/js/translated/stock.js:376 msgid "New Stock Item" msgstr "" @@ -3092,7 +3084,7 @@ msgid "Supplier Part Orders" msgstr "供应商商品订单" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "订购商品" @@ -3137,10 +3129,10 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1165 -#: templates/js/translated/part.js:1326 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:669 +#: templates/js/translated/part.js:1204 templates/js/translated/part.js:1365 +#: templates/js/translated/stock.js:900 templates/js/translated/stock.js:1676 +#: templates/navbar.html:28 msgid "Stock" msgstr "库存" @@ -3163,7 +3155,7 @@ msgstr "定价" #: stock/templates/stock/location.html:152 #: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/search.js:126 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 #: templates/js/translated/stock.js:2291 templates/stats.html:105 #: templates/stats.html:114 users/models.py:43 msgid "Stock Items" @@ -3186,7 +3178,7 @@ msgstr "客户信息" msgid "New Customer" msgstr "新建客户" -#: company/views.py:69 templates/js/translated/search.js:157 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "公司" @@ -3436,7 +3428,7 @@ msgstr "" #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:336 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:877 #: templates/js/translated/stock.js:1831 templates/js/translated/stock.js:2366 msgid "Purchase Order" msgstr "" @@ -3447,7 +3439,7 @@ msgstr "供应商商品" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 +#: templates/js/translated/part.js:971 templates/js/translated/part.js:998 #: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3556,7 +3548,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:298 +#: templates/js/translated/model_renderers.js:296 msgid "Shipment" msgstr "" @@ -3693,7 +3685,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3786,7 +3778,7 @@ msgstr "选择供应商商品" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1573 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1588 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 #: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 #: templates/patterns/wizard/match_fields.html:70 @@ -3804,7 +3796,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "步骤 %(step)s / %(count)s" @@ -3882,27 +3874,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3934,7 +3926,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3952,21 +3944,21 @@ msgstr "警告" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1481 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:953 templates/js/translated/build.js:1496 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -4065,19 +4057,19 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/api.py:1013 +#: part/api.py:1027 msgid "Must be greater than zero" msgstr "必须大于0" -#: part/api.py:1017 +#: part/api.py:1031 msgid "Must be a valid quantity" msgstr "必须是有效的数量" -#: part/api.py:1032 +#: part/api.py:1046 msgid "Specify location for initial part stock" msgstr "指定初始初始商品仓储地点" -#: part/api.py:1063 part/api.py:1067 part/api.py:1082 part/api.py:1086 +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 msgid "This field is required" msgstr "此字段为必填" @@ -4095,7 +4087,9 @@ msgid "Available Stock" msgstr "可用库存" #: part/bom.py:128 part/templates/part/part_base.html:207 -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:528 +#: templates/js/translated/part.js:1207 templates/js/translated/part.js:1379 +#: templates/js/translated/part.js:1395 msgid "On Order" msgstr "" @@ -4127,13 +4121,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2613 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/js/translated/search.js:112 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 #: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "商品类别" @@ -4144,7 +4138,7 @@ msgstr "商品类别" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:39 -#: templates/js/translated/part.js:1703 templates/js/translated/search.js:98 +#: templates/js/translated/part.js:1758 templates/js/translated/search.js:99 #: templates/navbar.html:21 templates/stats.html:92 templates/stats.html:101 #: users/models.py:41 msgid "Parts" @@ -4175,7 +4169,7 @@ msgstr "" msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:811 part/models.py:2666 msgid "Part name" msgstr "商品名称" @@ -4208,12 +4202,12 @@ msgstr "关键词" msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 +#: part/models.py:849 part/models.py:2363 part/models.py:2612 #: part/templates/part/part_base.html:285 #: part/templates/part/set_category.html:15 #: templates/InvenTree/notifications/notifications.html:65 #: templates/InvenTree/settings/settings.html:224 -#: templates/js/translated/part.js:1308 +#: templates/js/translated/part.js:1347 msgid "Category" msgstr "类别" @@ -4222,7 +4216,7 @@ msgid "Part category" msgstr "商品类别" #: part/models.py:855 part/templates/part/part_base.html:294 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:657 templates/js/translated/part.js:1300 #: templates/js/translated/stock.js:1648 msgid "IPN" msgstr "" @@ -4236,7 +4230,7 @@ msgid "Part revision or version number" msgstr "商品版本号" #: part/models.py:863 part/templates/part/part_base.html:301 -#: report/models.py:200 templates/js/translated/part.js:624 +#: report/models.py:200 templates/js/translated/part.js:661 msgid "Revision" msgstr "" @@ -4324,313 +4318,313 @@ msgstr "" msgid "Creation User" msgstr "新建用户" -#: part/models.py:1848 +#: part/models.py:1849 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2413 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2430 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1754 +#: part/models.py:2450 templates/js/translated/part.js:1809 #: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2451 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2456 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2457 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1763 +#: part/models.py:2462 templates/js/translated/part.js:1818 #: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2463 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1771 +#: part/models.py:2468 templates/js/translated/part.js:1826 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2469 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1778 +#: part/models.py:2474 templates/js/translated/part.js:1833 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2475 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2486 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2522 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2530 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2537 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2567 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 +#: part/models.py:2569 part/models.py:2618 part/models.py:2619 #: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2571 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:228 +#: part/models.py:2623 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "默认值" -#: part/models.py:2623 +#: part/models.py:2624 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2658 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:186 +#: part/models.py:2661 msgid "Part ID" msgstr "商品ID" -#: part/models.py:2661 +#: part/models.py:2662 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2665 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2669 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2670 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2673 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2674 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2735 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2743 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2744 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2750 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2752 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:871 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "可选项" -#: part/models.py:2751 +#: part/models.py:2752 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2755 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2756 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2759 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2762 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2764 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2768 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:888 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "继承项" -#: part/models.py:2768 +#: part/models.py:2769 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2774 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:880 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2775 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2860 stock/models.py:461 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2869 part/models.py:2871 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:2983 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3005 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3017 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3025 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3036 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3040 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3072 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:674 +#: part/serializers.py:835 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:685 +#: part/serializers.py:846 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:686 +#: part/serializers.py:847 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:691 +#: part/serializers.py:852 msgid "Include Inherited" msgstr "" -#: part/serializers.py:692 +#: part/serializers.py:853 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:697 +#: part/serializers.py:858 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:698 +#: part/serializers.py:859 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:703 +#: part/serializers.py:864 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:704 +#: part/serializers.py:865 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:909 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:749 +#: part/serializers.py:910 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:776 +#: part/serializers.py:937 msgid "No part column specified" msgstr "" -#: part/serializers.py:819 +#: part/serializers.py:980 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:822 +#: part/serializers.py:983 msgid "No matching part found" msgstr "" -#: part/serializers.py:825 +#: part/serializers.py:986 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:834 +#: part/serializers.py:995 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:842 +#: part/serializers.py:1003 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:861 +#: part/serializers.py:1022 msgid "At least one BOM item is required" msgstr "" @@ -4662,7 +4656,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 msgid "BOM actions" msgstr "" @@ -4831,150 +4825,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "商品库存" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:57 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:156 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:157 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:184 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:251 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:255 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:257 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:267 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:268 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:269 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:274 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:275 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:288 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:306 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:42 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:349 msgid "Part Suppliers" msgstr "商品供应商" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:377 msgid "Part Manufacturers" msgstr "商品制造商" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:393 msgid "Delete manufacturer parts" msgstr "删除制造商商品" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:596 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:597 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:646 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:690 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:698 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:795 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "编辑商品注释" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:928 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:940 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:952 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1041 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -5118,8 +5112,8 @@ msgstr "商品是虚拟的(不是实体零件)" #: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:178 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:187 +#: templates/js/translated/part.js:572 templates/js/translated/part.js:649 msgid "Inactive" msgstr "" @@ -5164,12 +5158,13 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:259 templates/js/translated/bom.js:909 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:265 templates/js/translated/part.js:1172 -#: templates/js/translated/part.js:1345 +#: part/templates/part/part_base.html:265 templates/js/translated/part.js:511 +#: templates/js/translated/part.js:531 templates/js/translated/part.js:1211 +#: templates/js/translated/part.js:1383 templates/js/translated/part.js:1399 msgid "Building" msgstr "" @@ -5221,7 +5216,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: templates/js/translated/bom.js:863 msgid "No supplier pricing available" msgstr "" @@ -5340,7 +5335,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:857 msgid "Supplier Cost" msgstr "" @@ -5382,9 +5377,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "为以下商品设置类别" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1162 -#: templates/js/translated/part.js:1349 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:534 +#: templates/js/translated/part.js:1199 templates/js/translated/part.js:1403 msgid "No Stock" msgstr "" @@ -5744,7 +5738,7 @@ msgstr "" #: stock/models.py:623 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 #: templates/js/translated/build.js:920 templates/js/translated/build.js:1309 -#: templates/js/translated/model_renderers.js:97 +#: templates/js/translated/model_renderers.js:103 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 #: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 msgid "Serial Number" @@ -5959,7 +5953,7 @@ msgstr "" msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:704 stock/templates/stock/item.html:136 msgid "Stock Item Notes" msgstr "" @@ -6178,48 +6172,48 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:74 +#: stock/templates/stock/item.html:73 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:82 +#: stock/templates/stock/item.html:81 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:91 +#: stock/templates/stock/item.html:90 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +#: stock/templates/stock/item.html:94 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:99 +#: stock/templates/stock/item.html:98 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:102 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:151 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2669 +#: stock/templates/stock/item.html:155 templates/js/translated/stock.js:2669 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:315 templates/js/translated/stock.js:1444 msgid "Add Test Result" msgstr "" @@ -6479,7 +6473,7 @@ msgid "Sublocations" msgstr "" #: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 -#: templates/js/translated/search.js:143 templates/stats.html:109 +#: templates/js/translated/search.js:145 templates/stats.html:109 #: users/models.py:42 msgid "Stock Locations" msgstr "仓储地点" @@ -7118,7 +7112,8 @@ msgid "Change Password" msgstr "更改密码" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "编辑" @@ -7599,15 +7594,15 @@ msgstr "" msgid "Add Attachment" msgstr "添加附件" -#: templates/base.html:98 +#: templates/base.html:99 msgid "Server Restart Required" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:101 +#: templates/base.html:102 msgid "Contact your system administrator for further information" msgstr "" @@ -7629,14 +7624,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1350 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 #: templates/js/translated/bom.js:802 templates/js/translated/build.js:1425 -#: templates/js/translated/build.js:2129 +#: templates/js/translated/build.js:2144 templates/js/translated/part.js:518 +#: templates/js/translated/part.js:521 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "空闲" @@ -7674,67 +7670,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7823,45 +7819,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:991 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7971,55 +7966,63 @@ msgstr "" msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:815 templates/js/translated/build.js:1433 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1436 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:828 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:843 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:850 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:899 templates/js/translated/bom.js:990 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:961 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:963 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:965 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:967 templates/js/translated/bom.js:1153 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:969 templates/js/translated/bom.js:1136 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1139 +#: templates/js/translated/bom.js:1076 templates/js/translated/build.js:1139 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1131 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1391 +#: templates/js/translated/bom.js:1333 templates/js/translated/build.js:1391 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1355 msgid "Inherited from parent BOM" msgstr "" @@ -8129,12 +8132,12 @@ msgstr "未指定仓储地点" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2140 +#: templates/js/translated/build.js:1348 templates/js/translated/build.js:2155 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2141 +#: templates/js/translated/build.js:1350 templates/js/translated/build.js:2156 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" @@ -8155,115 +8158,115 @@ msgstr "" msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1430 templates/js/translated/build.js:1685 -#: templates/js/translated/build.js:2136 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1445 templates/js/translated/build.js:1700 +#: templates/js/translated/build.js:2151 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1444 +#: templates/js/translated/build.js:1459 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1488 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1503 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1492 templates/stock_table.html:50 +#: templates/js/translated/build.js:1507 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1495 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1510 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/label.js:172 +#: templates/js/translated/build.js:1549 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "选择商品" -#: templates/js/translated/build.js:1535 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1550 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1584 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1658 +#: templates/js/translated/build.js:1673 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1659 +#: templates/js/translated/build.js:1674 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1688 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1702 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1717 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "确认库存分配" -#: templates/js/translated/build.js:1703 +#: templates/js/translated/build.js:1718 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1714 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1729 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1786 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1801 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1898 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1899 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1886 +#: templates/js/translated/build.js:1901 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1887 +#: templates/js/translated/build.js:1902 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1888 +#: templates/js/translated/build.js:1903 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1909 +#: templates/js/translated/build.js:1924 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1947 +#: templates/js/translated/build.js:1962 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1964 templates/js/translated/part.js:1253 -#: templates/js/translated/part.js:1664 templates/js/translated/stock.js:1608 +#: templates/js/translated/build.js:1979 templates/js/translated/part.js:1292 +#: templates/js/translated/part.js:1719 templates/js/translated/stock.js:1608 #: templates/js/translated/stock.js:2261 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1984 +#: templates/js/translated/build.js:1999 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2048 templates/js/translated/stock.js:2473 +#: templates/js/translated/build.js:2063 templates/js/translated/stock.js:2473 msgid "No user information" msgstr "没有用户信息" -#: templates/js/translated/build.js:2060 +#: templates/js/translated/build.js:2075 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2132 msgid "No parts allocated for" msgstr "" @@ -8328,34 +8331,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:556 +#: templates/js/translated/part.js:641 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:735 msgid "No parameters found" msgstr "无指定参数" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:777 msgid "Edit parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:778 msgid "Delete parameter" msgstr "删除参数" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:795 msgid "Edit Parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:807 msgid "Delete Parameter" msgstr "删除参数" @@ -8455,14 +8458,18 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + #: templates/js/translated/label.js:39 msgid "Labels sent to printer" msgstr "" @@ -8580,40 +8587,40 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:42 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "公司ID" -#: templates/js/translated/model_renderers.js:79 +#: templates/js/translated/model_renderers.js:115 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:132 +#: templates/js/translated/model_renderers.js:141 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:149 +#: templates/js/translated/model_renderers.js:158 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:251 +#: templates/js/translated/model_renderers.js:257 #: templates/js/translated/model_renderers.js:283 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:300 +#: templates/js/translated/model_renderers.js:298 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:320 +#: templates/js/translated/model_renderers.js:318 msgid "Category ID" msgstr "类别 ID" -#: templates/js/translated/model_renderers.js:363 +#: templates/js/translated/model_renderers.js:361 msgid "Manufacturer Part ID" msgstr "制造商商品ID" -#: templates/js/translated/model_renderers.js:392 +#: templates/js/translated/model_renderers.js:390 msgid "Supplier Part ID" msgstr "供应商商品ID" @@ -8709,7 +8716,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:848 msgid "No purchase orders found" msgstr "" @@ -8738,7 +8745,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1881 templates/js/translated/part.js:2225 +#: templates/js/translated/part.js:1936 templates/js/translated/part.js:2280 msgid "Unit Price" msgstr "单价" @@ -8747,11 +8754,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:957 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1003 msgid "Receive line item" msgstr "" @@ -8996,125 +9003,133 @@ msgstr "" msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "可追溯商品" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "虚拟商品" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "可销售商品" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1403 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1313 -msgid "No category" -msgstr "没有分类" - -#: templates/js/translated/part.js:1336 +#: templates/js/translated/part.js:504 templates/js/translated/part.js:1375 #: templates/js/translated/table_filters.js:434 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1427 templates/js/translated/part.js:1599 +#: templates/js/translated/part.js:514 templates/js/translated/part.js:1387 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:548 templates/js/translated/part.js:633 +msgid "Trackable part" +msgstr "可追溯商品" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Virtual part" +msgstr "虚拟商品" + +#: templates/js/translated/part.js:564 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Salable part" +msgstr "可销售商品" + +#: templates/js/translated/part.js:683 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1073 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1097 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1162 templates/js/translated/part.js:1458 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1201 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1352 +msgid "No category" +msgstr "没有分类" + +#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1654 #: templates/js/translated/stock.js:2222 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1443 +#: templates/js/translated/part.js:1498 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1618 templates/js/translated/stock.js:2241 +#: templates/js/translated/part.js:1673 templates/js/translated/stock.js:2241 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1682 +#: templates/js/translated/part.js:1737 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1696 templates/js/translated/stock.js:2285 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:2285 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1740 +#: templates/js/translated/part.js:1795 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1791 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1846 templates/js/translated/stock.js:1235 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1792 templates/js/translated/stock.js:1236 +#: templates/js/translated/part.js:1847 templates/js/translated/stock.js:1236 #: templates/js/translated/stock.js:1482 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1798 +#: templates/js/translated/part.js:1853 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1820 +#: templates/js/translated/part.js:1875 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1834 +#: templates/js/translated/part.js:1889 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1859 -#, python-brace-format -msgid "No ${human_name} information found" -msgstr "" - #: templates/js/translated/part.js:1914 #, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1969 +#, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1915 +#: templates/js/translated/part.js:1970 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2020 +#: templates/js/translated/part.js:2075 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2053 +#: templates/js/translated/part.js:2108 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2079 +#: templates/js/translated/part.js:2134 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2204 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2168 +#: templates/js/translated/part.js:2223 msgid "Single Price Difference" msgstr "" @@ -9188,11 +9203,11 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/search.js:281 +#: templates/js/translated/search.js:286 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:284 +#: templates/js/translated/search.js:289 msgid "Remove results" msgstr "" @@ -9565,7 +9580,7 @@ msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:450 msgid "Subscribed" msgstr "" @@ -9730,10 +9745,14 @@ msgid "Show active parts" msgstr "" #: templates/js/translated/table_filters.js:430 -msgid "Stock available" +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:438 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:462 msgid "Purchasable" msgstr "" @@ -9835,6 +9854,10 @@ msgstr "" msgid "InvenTree demo mode" msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + #: templates/notifications.html:13 msgid "Show all notifications and history" msgstr "" diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html index 53f973ee20..a6393b7b68 100644 --- a/InvenTree/order/templates/order/purchase_order_detail.html +++ b/InvenTree/order/templates/order/purchase_order_detail.html @@ -4,7 +4,6 @@ {% load status_codes %} {% load i18n %} {% load static %} -{% load markdownify %} {% block sidebar %} {% include 'order/po_sidebar.html' %} @@ -71,24 +70,16 @@
        -
        -
        -

        {% trans "Order Notes" %}

        -
        -
        -
        - -
        +
        +

        {% trans "Order Notes" %}

        + {% include "spacer.html" %} +
        + {% include "notes_buttons.html" %}
        - {% if order.notes %} - {{ order.notes | markdownify }} - {% endif %} +
        @@ -98,16 +89,18 @@ {{ block.super }} - $('#edit-notes').click(function() { - constructForm('{% url "api-po-detail" order.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); + onPanelLoad('order-notes', function() { + setupNotesField( + 'order-notes', + '{% url "api-po-detail" order.pk %}', + { + {% if roles.purchase_order.change %} + editable: true, + {% else %} + editable: false, + {% endif %} + } + ); }); enableDragAndDrop( diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html index 9797c8dedf..f11d1fa832 100644 --- a/InvenTree/order/templates/order/sales_order_detail.html +++ b/InvenTree/order/templates/order/sales_order_detail.html @@ -4,7 +4,6 @@ {% load status_codes %} {% load i18n %} {% load static %} -{% load markdownify %} {% block sidebar %} {% include "order/so_sidebar.html" %} @@ -118,24 +117,16 @@
        -
        -
        -

        {% trans "Order Notes" %}

        -
        -
        -
        - -
        +
        +

        {% trans "Order Notes" %}

        + {% include "spacer.html" %} +
        + {% include "notes_buttons.html" %}
        - {% if order.notes %} - {{ order.notes | markdownify }} - {% endif %} +
        @@ -176,16 +167,18 @@ }); }); - $('#edit-notes').click(function() { - constructForm('{% url "api-so-detail" order.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); + onPanelLoad('order-notes', function() { + setupNotesField( + 'order-notes', + '{% url "api-so-detail" order.pk %}', + { + {% if roles.purchase_order.change %} + editable: true, + {% else %} + editable: false, + {% endif %} + } + ); }); enableDragAndDrop( diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index e1b0dda61f..1a80c87322 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -262,6 +262,15 @@ class CategoryTree(generics.ListAPIView): ordering = ['level', 'name'] +class PartSalePriceDetail(generics.RetrieveUpdateDestroyAPIView): + """ + Detail endpoint for PartSellPriceBreak model + """ + + queryset = PartSellPriceBreak.objects.all() + serializer_class = part_serializers.PartSalePriceSerializer + + class PartSalePriceList(generics.ListCreateAPIView): """ API endpoint for list view of PartSalePriceBreak model @@ -279,6 +288,15 @@ class PartSalePriceList(generics.ListCreateAPIView): ] +class PartInternalPriceDetail(generics.RetrieveUpdateDestroyAPIView): + """ + Detail endpoint for PartInternalPriceBreak model + """ + + queryset = PartInternalPriceBreak.objects.all() + serializer_class = part_serializers.PartInternalPriceSerializer + + class PartInternalPriceList(generics.ListCreateAPIView): """ API endpoint for list view of PartInternalPriceBreak model @@ -1175,6 +1193,18 @@ class PartList(generics.ListCreateAPIView): except (ValueError, Part.DoesNotExist): pass + # Filter by 'variant_of' + # Note that this is subtly different from 'ancestor' filter (above) + variant_of = params.get('variant_of', None) + + if variant_of is not None: + try: + template = Part.objects.get(pk=variant_of) + variants = template.get_children() + queryset = queryset.filter(pk__in=[v.pk for v in variants]) + except (ValueError, Part.DoesNotExist): + pass + # Filter only parts which are in the "BOM" for a given part in_bom_for = params.get('in_bom_for', None) @@ -1339,10 +1369,6 @@ class PartList(generics.ListCreateAPIView): filters.OrderingFilter, ] - filter_fields = [ - 'variant_of', - ] - ordering_fields = [ 'name', 'creation_date', @@ -1602,9 +1628,10 @@ class BomList(generics.ListCreateAPIView): def get_queryset(self, *args, **kwargs): - queryset = BomItem.objects.all() + queryset = super().get_queryset(*args, **kwargs) queryset = self.get_serializer_class().setup_eager_loading(queryset) + queryset = self.get_serializer_class().annotate_queryset(queryset) return queryset @@ -1818,6 +1845,15 @@ class BomDetail(generics.RetrieveUpdateDestroyAPIView): queryset = BomItem.objects.all() serializer_class = part_serializers.BomItemSerializer + def get_queryset(self, *args, **kwargs): + + queryset = super().get_queryset(*args, **kwargs) + + queryset = self.get_serializer_class().setup_eager_loading(queryset) + queryset = self.get_serializer_class().annotate_queryset(queryset) + + return queryset + class BomItemValidate(generics.UpdateAPIView): """ API endpoint for validating a BomItem """ @@ -1902,11 +1938,13 @@ part_api_urls = [ # Base URL for part sale pricing url(r'^sale-price/', include([ + url(r'^(?P\d+)/', PartSalePriceDetail.as_view(), name='api-part-sale-price-detail'), url(r'^.*$', PartSalePriceList.as_view(), name='api-part-sale-price-list'), ])), # Base URL for part internal pricing url(r'^internal-price/', include([ + url(r'^(?P\d+)/', PartInternalPriceDetail.as_view(), name='api-part-internal-price-detail'), url(r'^.*$', PartInternalPriceList.as_view(), name='api-part-internal-price-list'), ])), diff --git a/InvenTree/part/fixtures/bom.yaml b/InvenTree/part/fixtures/bom.yaml index facb7e76ae..ac52452d75 100644 --- a/InvenTree/part/fixtures/bom.yaml +++ b/InvenTree/part/fixtures/bom.yaml @@ -7,6 +7,7 @@ part: 100 sub_part: 1 quantity: 10 + allow_variants: True # 40 x R_2K2_0805 - model: part.bomitem diff --git a/InvenTree/part/fixtures/part.yaml b/InvenTree/part/fixtures/part.yaml index d0a2d949b1..fd38036fa9 100644 --- a/InvenTree/part/fixtures/part.yaml +++ b/InvenTree/part/fixtures/part.yaml @@ -177,6 +177,7 @@ fields: name: 'Green chair variant' variant_of: 10003 + is_template: true category: 7 trackable: true tree_id: 1 diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index c493028d71..1edae69351 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -777,7 +777,8 @@ class Part(MPTTModel): # User can decide whether duplicate IPN (Internal Part Number) values are allowed allow_duplicate_ipn = common.models.InvenTreeSetting.get_setting('PART_ALLOW_DUPLICATE_IPN') - if self.IPN is not None and not allow_duplicate_ipn: + # Raise an error if an IPN is set, and it is a duplicate + if self.IPN and not allow_duplicate_ipn: parts = Part.objects.filter(IPN__iexact=self.IPN) parts = parts.exclude(pk=self.pk) @@ -798,6 +799,10 @@ class Part(MPTTModel): super().clean() + # Strip IPN field + if type(self.IPN) is str: + self.IPN = self.IPN.strip() + if self.trackable: for part in self.get_used_in().all(): @@ -1313,19 +1318,31 @@ class Part(MPTTModel): return quantity - def build_order_allocations(self): + def build_order_allocations(self, **kwargs): """ Return all 'BuildItem' objects which allocate this part to Build objects """ - return BuildModels.BuildItem.objects.filter(stock_item__part__id=self.id) + include_variants = kwargs.get('include_variants', True) - def build_order_allocation_count(self): + queryset = BuildModels.BuildItem.objects.all() + + if include_variants: + variants = self.get_descendants(include_self=True) + queryset = queryset.filter( + stock_item__part__in=variants, + ) + else: + queryset = queryset.filter(stock_item__part=self) + + return queryset + + def build_order_allocation_count(self, **kwargs): """ Return the total amount of this part allocated to build orders """ - query = self.build_order_allocations().aggregate( + query = self.build_order_allocations(**kwargs).aggregate( total=Coalesce( Sum( 'quantity', @@ -1343,7 +1360,19 @@ class Part(MPTTModel): Return all sales-order-allocation objects which allocate this part to a SalesOrder """ - queryset = OrderModels.SalesOrderAllocation.objects.filter(item__part__id=self.id) + include_variants = kwargs.get('include_variants', True) + + queryset = OrderModels.SalesOrderAllocation.objects.all() + + if include_variants: + # Include allocations for all variants + variants = self.get_descendants(include_self=True) + queryset = queryset.filter( + item__part__in=variants, + ) + else: + # Only look at this part + queryset = queryset.filter(item__part=self) # Default behaviour is to only return *pending* allocations pending = kwargs.get('pending', True) @@ -1381,7 +1410,7 @@ class Part(MPTTModel): return query['total'] - def allocation_count(self): + def allocation_count(self, **kwargs): """ Return the total quantity of stock allocated for this part, against both build orders and sales orders. @@ -1389,8 +1418,8 @@ class Part(MPTTModel): return sum( [ - self.build_order_allocation_count(), - self.sales_order_allocation_count(), + self.build_order_allocation_count(**kwargs), + self.sales_order_allocation_count(**kwargs), ], ) @@ -2703,7 +2732,21 @@ class BomItem(models.Model, DataImportMixin): for sub in self.substitutes.all(): parts.add(sub.part) - return parts + valid_parts = [] + + for p in parts: + + # Inactive parts cannot be 'auto allocated' + if not p.active: + continue + + # Trackable parts cannot be 'auto allocated' + if p.trackable: + continue + + valid_parts.append(p) + + return valid_parts def is_stock_item_valid(self, stock_item): """ @@ -2882,23 +2925,6 @@ class BomItem(models.Model, DataImportMixin): child=self.sub_part.full_name, n=decimal2string(self.quantity)) - def available_stock(self): - """ - Return the available stock items for the referenced sub_part - """ - - query = self.sub_part.stock_items.all() - - query = query.prefetch_related([ - 'sub_part__stock_items', - ]) - - query = query.filter(StockModels.StockItem.IN_STOCK_FILTER).aggregate( - available=Coalesce(Sum('quantity'), 0) - ) - - return query['available'] - def get_overage_quantity(self, quantity): """ Calculate overage quantity """ diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index c352c59eab..0e865ea74b 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -7,7 +7,9 @@ from decimal import Decimal from django.urls import reverse_lazy from django.db import models, transaction -from django.db.models import ExpressionWrapper, F, Q +from django.db.models import ExpressionWrapper, F, Q, Func +from django.db.models import Subquery, OuterRef, FloatField + from django.db.models.functions import Coalesce from django.utils.translation import ugettext_lazy as _ @@ -15,6 +17,8 @@ from rest_framework import serializers from sql_util.utils import SubqueryCount, SubquerySum from djmoney.contrib.django_rest_framework import MoneyField +from common.settings import currency_code_default, currency_code_mappings + from InvenTree.serializers import (DataFileUploadSerializer, DataFileExtractSerializer, InvenTreeAttachmentSerializerField, @@ -146,6 +150,13 @@ class PartSalePriceSerializer(InvenTreeModelSerializer): allow_null=True ) + price_currency = serializers.ChoiceField( + choices=currency_code_mappings(), + default=currency_code_default, + label=_('Currency'), + help_text=_('Purchase currency of this stock item'), + ) + price_string = serializers.CharField(source='price', read_only=True) class Meta: @@ -155,6 +166,7 @@ class PartSalePriceSerializer(InvenTreeModelSerializer): 'part', 'quantity', 'price', + 'price_currency', 'price_string', ] @@ -170,6 +182,13 @@ class PartInternalPriceSerializer(InvenTreeModelSerializer): allow_null=True ) + price_currency = serializers.ChoiceField( + choices=currency_code_mappings(), + default=currency_code_default, + label=_('Currency'), + help_text=_('Purchase currency of this stock item'), + ) + price_string = serializers.CharField(source='price', read_only=True) class Meta: @@ -179,6 +198,7 @@ class PartInternalPriceSerializer(InvenTreeModelSerializer): 'part', 'quantity', 'price', + 'price_currency', 'price_string', ] @@ -308,9 +328,6 @@ class PartSerializer(InvenTreeModelSerializer): to reduce database trips. """ - # TODO: Update the "in_stock" annotation to include stock for variants of the part - # Ref: https://github.com/inventree/InvenTree/issues/2240 - # Annotate with the total 'in stock' quantity queryset = queryset.annotate( in_stock=Coalesce( @@ -325,6 +342,24 @@ class PartSerializer(InvenTreeModelSerializer): stock_item_count=SubqueryCount('stock_items') ) + # Annotate with the total variant stock quantity + variant_query = StockItem.objects.filter( + part__tree_id=OuterRef('tree_id'), + part__lft__gt=OuterRef('lft'), + part__rght__lt=OuterRef('rght'), + ).filter(StockItem.IN_STOCK_FILTER) + + queryset = queryset.annotate( + variant_stock=Coalesce( + Subquery( + variant_query.annotate( + total=Func(F('quantity'), function='SUM', output_field=FloatField()) + ).values('total')), + 0, + output_field=FloatField(), + ) + ) + # Filter to limit builds to "active" build_filter = Q( status__in=BuildStatus.ACTIVE_CODES @@ -429,6 +464,7 @@ class PartSerializer(InvenTreeModelSerializer): unallocated_stock = serializers.FloatField(read_only=True) building = serializers.FloatField(read_only=True) in_stock = serializers.FloatField(read_only=True) + variant_stock = serializers.FloatField(read_only=True) ordering = serializers.FloatField(read_only=True) stock_item_count = serializers.IntegerField(read_only=True) suppliers = serializers.IntegerField(read_only=True) @@ -463,6 +499,7 @@ class PartSerializer(InvenTreeModelSerializer): 'full_name', 'image', 'in_stock', + 'variant_stock', 'ordering', 'building', 'IPN', @@ -577,6 +614,11 @@ class BomItemSerializer(InvenTreeModelSerializer): purchase_price_range = serializers.SerializerMethodField() + # Annotated fields for available stock + available_stock = serializers.FloatField(read_only=True) + available_substitute_stock = serializers.FloatField(read_only=True) + available_variant_stock = serializers.FloatField(read_only=True) + def __init__(self, *args, **kwargs): # part_detail and sub_part_detail serializers are only included if requested. # This saves a bunch of database requests @@ -609,10 +651,158 @@ class BomItemSerializer(InvenTreeModelSerializer): queryset = queryset.prefetch_related('sub_part') queryset = queryset.prefetch_related('sub_part__category') - queryset = queryset.prefetch_related('sub_part__stock_items') + + queryset = queryset.prefetch_related( + 'sub_part__stock_items', + 'sub_part__stock_items__allocations', + 'sub_part__stock_items__sales_order_allocations', + ) + + queryset = queryset.prefetch_related( + 'substitutes', + 'substitutes__part__stock_items', + ) + queryset = queryset.prefetch_related('sub_part__supplier_parts__pricebreaks') return queryset + @staticmethod + def annotate_queryset(queryset): + """ + Annotate the BomItem queryset with extra information: + + Annotations: + available_stock: The amount of stock available for the sub_part Part object + """ + + """ + Construct an "available stock" quantity: + available_stock = total_stock - build_order_allocations - sales_order_allocations + """ + + build_order_filter = Q(build__status__in=BuildStatus.ACTIVE_CODES) + sales_order_filter = Q( + line__order__status__in=SalesOrderStatus.OPEN, + shipment__shipment_date=None, + ) + + # Calculate "total stock" for the referenced sub_part + # Calculate the "build_order_allocations" for the sub_part + # Note that these fields are only aliased, not annotated + queryset = queryset.alias( + total_stock=Coalesce( + SubquerySum( + 'sub_part__stock_items__quantity', + filter=StockItem.IN_STOCK_FILTER + ), + Decimal(0), + output_field=models.DecimalField(), + ), + allocated_to_sales_orders=Coalesce( + SubquerySum( + 'sub_part__stock_items__sales_order_allocations__quantity', + filter=sales_order_filter, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + allocated_to_build_orders=Coalesce( + SubquerySum( + 'sub_part__stock_items__allocations__quantity', + filter=build_order_filter, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + ) + + # Calculate 'available_stock' based on previously annotated fields + queryset = queryset.annotate( + available_stock=ExpressionWrapper( + F('total_stock') - F('allocated_to_sales_orders') - F('allocated_to_build_orders'), + output_field=models.DecimalField(), + ) + ) + + # Extract similar information for any 'substitute' parts + queryset = queryset.alias( + substitute_stock=Coalesce( + SubquerySum( + 'substitutes__part__stock_items__quantity', + filter=StockItem.IN_STOCK_FILTER, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + substitute_build_allocations=Coalesce( + SubquerySum( + 'substitutes__part__stock_items__allocations__quantity', + filter=build_order_filter, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + substitute_sales_allocations=Coalesce( + SubquerySum( + 'substitutes__part__stock_items__sales_order_allocations__quantity', + filter=sales_order_filter, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + ) + + # Calculate 'available_substitute_stock' field + queryset = queryset.annotate( + available_substitute_stock=ExpressionWrapper( + F('substitute_stock') - F('substitute_build_allocations') - F('substitute_sales_allocations'), + output_field=models.DecimalField(), + ) + ) + + # Annotate the queryset with 'available variant stock' information + variant_stock_query = StockItem.objects.filter( + part__tree_id=OuterRef('sub_part__tree_id'), + part__lft__gt=OuterRef('sub_part__lft'), + part__rght__lt=OuterRef('sub_part__rght'), + ).filter(StockItem.IN_STOCK_FILTER) + + queryset = queryset.alias( + variant_stock_total=Coalesce( + Subquery( + variant_stock_query.annotate( + total=Func(F('quantity'), function='SUM', output_field=FloatField()) + ).values('total')), + 0, + output_field=FloatField() + ), + variant_stock_build_order_allocations=Coalesce( + Subquery( + variant_stock_query.annotate( + total=Func(F('sales_order_allocations__quantity'), function='SUM', output_field=FloatField()), + ).values('total')), + 0, + output_field=FloatField(), + ), + variant_stock_sales_order_allocations=Coalesce( + Subquery( + variant_stock_query.annotate( + total=Func(F('allocations__quantity'), function='SUM', output_field=FloatField()), + ).values('total')), + 0, + output_field=FloatField(), + ) + ) + + queryset = queryset.annotate( + available_variant_stock=ExpressionWrapper( + F('variant_stock_total') - F('variant_stock_build_order_allocations') - F('variant_stock_sales_order_allocations'), + output_field=FloatField(), + ) + ) + + return queryset + def get_purchase_price_range(self, obj): """ Return purchase price range """ @@ -682,6 +872,12 @@ class BomItemSerializer(InvenTreeModelSerializer): 'substitutes', 'price_range', 'validated', + + # Annotated fields describing available quantity + 'available_stock', + 'available_substitute_stock', + 'available_variant_stock', + ] diff --git a/InvenTree/part/templates/markdownx/widget.html b/InvenTree/part/templates/markdownx/widget.html deleted file mode 100644 index 61c8673748..0000000000 --- a/InvenTree/part/templates/markdownx/widget.html +++ /dev/null @@ -1,10 +0,0 @@ -{% load i18n %} - -
        -
        - {% include 'django/forms/widgets/textarea.html' %} -
        -
        -
        -
        -
        \ No newline at end of file diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index 8c15b6151f..41df553a5e 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -192,6 +192,15 @@
        +
        +
        +

        {% trans "Stock Items" %}

        +
        +
        + {% include "stock_table.html" %} +
        +
        +

        {% trans "Part Parameters" %}

        @@ -228,6 +237,21 @@ {{ block.super }} {% if category %} + + onPanelLoad('stock', function() { + loadStockTable( + $('#stock-table'), + { + params: { + category: {{ category.pk }}, + part_detail: true, + location_detail: true, + supplier_part_detail: true, + } + } + ); + }); + onPanelLoad('parameters', function() { loadParametricPartTable( "#parametric-part-table", diff --git a/InvenTree/part/templates/part/category_sidebar.html b/InvenTree/part/templates/part/category_sidebar.html index 3d945d0433..5468d953ae 100644 --- a/InvenTree/part/templates/part/category_sidebar.html +++ b/InvenTree/part/templates/part/category_sidebar.html @@ -14,6 +14,8 @@ {% include "sidebar_link.html" with url=url text=text icon="fa-file-upload" %} {% endif %} {% if category %} +{% trans "Stock Items" as text %} +{% include "sidebar_item.html" with label='stock' text=text icon='fa-boxes' %} {% trans "Parameters" as text %} {% include "sidebar_item.html" with label="parameters" text=text icon="fa-tasks" %} {% endif %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index 44f6682d3c..5ec1821b3d 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -3,7 +3,6 @@ {% load i18n %} {% load inventree_extras %} {% load crispy_forms_tags %} -{% load markdownify %} {% block sidebar %} {% include 'part/part_sidebar.html' %} @@ -125,8 +124,7 @@
        -{% settings_value "PART_SHOW_PRICE_HISTORY" as show_price_history %} -{% if show_price_history %} +{% if part.purchaseable or part.salable %}
        {% include "part/prices.html" %}
        @@ -134,24 +132,16 @@
        -
        -
        -

        {% trans "Notes" %}

        -
        -
        -
        - -
        +
        +

        {% trans "Part Notes" %}

        + {% include "spacer.html" %} +
        + {% include "notes_buttons.html" %}
        - {% if part.notes %} - {{ part.notes | markdownify }} - {% endif %} +
        @@ -419,6 +409,18 @@ {% block js_ready %} {{ block.super }} + // Load the "notes" tab + onPanelLoad('part-notes', function() { + + setupNotesField( + 'part-notes', + '{% url "api-part-detail" part.pk %}', + { + editable: {% if roles.part.change %}true{% else %}false{% endif %}, + } + ); + }); + // Load the "scheduling" tab onPanelLoad('scheduling', function() { loadPartSchedulingChart('part-schedule-chart', {{ part.pk }}); @@ -832,36 +834,6 @@ }); }); - $('#edit-notes').click(function() { - constructForm('{% url "api-part-detail" part.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Part Notes" %}', - reload: true, - }); - }); - - $(".slidey").change(function() { - var field = $(this).attr('fieldname'); - - var checked = $(this).prop('checked'); - - var data = {}; - - data[field] = checked; - // Update the particular field - inventreePut("{% url 'api-part-detail' part.id %}", - data, - { - method: 'PATCH', - reloadOnSuccess: true, - }, - ); - }); - onPanelLoad("part-parameters", function() { loadPartParameterTable( '#parameter-table', @@ -1036,7 +1008,7 @@ pb_url_slug: 'internal-price', pb_url: '{% url 'api-part-internal-price-list' %}', pb_new_btn: $('#new-internal-price-break'), - pb_new_url: '{% url 'internal-price-break-create' %}', + pb_new_url: '{% url 'api-part-internal-price-list' %}', linkedGraph: $('#InternalPriceBreakChart'), }, ); @@ -1052,7 +1024,7 @@ pb_url_slug: 'sale-price', pb_url: "{% url 'api-part-sale-price-list' %}", pb_new_btn: $('#new-price-break'), - pb_new_url: '{% url 'sale-price-break-create' %}', + pb_new_url: '{% url 'api-part-sale-price-list' %}', linkedGraph: $('#SalePriceBreakChart'), }, ); diff --git a/InvenTree/part/templates/part/part_base.html b/InvenTree/part/templates/part/part_base.html index b858c01697..71c21dc034 100644 --- a/InvenTree/part/templates/part/part_base.html +++ b/InvenTree/part/templates/part/part_base.html @@ -252,7 +252,6 @@ {% endif %} {% endif %} - {% if not part.is_template %} {% if part.assembly %} @@ -266,7 +265,6 @@ {% decimal quantity_being_built %} {% endif %} - {% endif %} {% endif %} {% endblock details_right %} diff --git a/InvenTree/part/templates/part/part_sidebar.html b/InvenTree/part/templates/part/part_sidebar.html index 3c1c647f86..e8763fb973 100644 --- a/InvenTree/part/templates/part/part_sidebar.html +++ b/InvenTree/part/templates/part/part_sidebar.html @@ -4,7 +4,6 @@ {% settings_value "PART_INTERNAL_PRICE" as show_internal_price %} {% settings_value 'PART_SHOW_RELATED' as show_related %} -{% settings_value "PART_SHOW_PRICE_HISTORY" as show_price_history %} {% trans "Parameters" as text %} {% include "sidebar_item.html" with label="part-parameters" text=text icon="fa-th-list" %} @@ -28,7 +27,7 @@ {% trans "Used In" as text %} {% include "sidebar_item.html" with label="used-in" text=text icon="fa-layer-group" %} {% endif %} -{% if show_price_history %} +{% if part.purchaseable or part.salable %} {% trans "Pricing" as text %} {% include "sidebar_item.html" with label="pricing" text=text icon="fa-dollar-sign" %} {% endif %} diff --git a/InvenTree/part/templates/part/prices.html b/InvenTree/part/templates/part/prices.html index 9b829c179b..d47f49ef76 100644 --- a/InvenTree/part/templates/part/prices.html +++ b/InvenTree/part/templates/part/prices.html @@ -3,6 +3,9 @@ {% load crispy_forms_tags %} {% load inventree_extras %} +{% settings_value "PART_INTERNAL_PRICE" as show_internal_price %} + +{% if show_price_history %}

        {% trans "Pricing Information" %}

        @@ -43,7 +46,7 @@ {% endif %} {% endif %} - {% if part.bom_count > 0 %} + {% if part.assembly and part.bom_count > 0 %} {% if min_total_bom_price %} {% trans 'BOM Pricing' %} @@ -147,7 +150,7 @@
        -{% settings_value "PART_INTERNAL_PRICE" as show_internal_price %} +{% endif %} {% if part.purchaseable and roles.purchase_order.view %} @@ -170,7 +173,7 @@
        -{% if price_history %} +{% if show_price_history %}

        {% trans "Purchase Price" %} @@ -279,6 +282,7 @@

        +{% if show_price_history %}

        {% trans "Sale Price" %} @@ -298,3 +302,5 @@ {% endif %}

        {% endif %} +{% endif %} + \ No newline at end of file diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py index bea7154612..f0770eb1f5 100644 --- a/InvenTree/part/test_api.py +++ b/InvenTree/part/test_api.py @@ -9,7 +9,7 @@ from rest_framework import status from rest_framework.test import APIClient from InvenTree.api_tester import InvenTreeAPITestCase -from InvenTree.status_codes import BuildStatus, StockStatus +from InvenTree.status_codes import BuildStatus, StockStatus, PurchaseOrderStatus from part.models import Part, PartCategory from part.models import BomItem, BomItemSubstitute @@ -567,6 +567,185 @@ class PartAPITest(InvenTreeAPITestCase): self.assertEqual(response.data['name'], name) self.assertEqual(response.data['description'], description) + def test_template_filters(self): + """ + Unit tests for API filters related to template parts: + + - variant_of : Return children of specified part + - ancestor : Return descendants of specified part + + Uses the 'chair template' part (pk=10000) + """ + + # Rebuild the MPTT structure before running these tests + Part.objects.rebuild() + + url = reverse('api-part-list') + + response = self.get( + url, + { + 'variant_of': 10000, + }, + expected_code=200 + ) + + # 3 direct children of template part + self.assertEqual(len(response.data), 3) + + response = self.get( + url, + { + 'ancestor': 10000, + }, + expected_code=200, + ) + + # 4 total descendants + self.assertEqual(len(response.data), 4) + + # Use the 'green chair' as our reference + response = self.get( + url, + { + 'variant_of': 10003, + }, + expected_code=200, + ) + + self.assertEqual(len(response.data), 1) + + response = self.get( + url, + { + 'ancestor': 10003, + }, + expected_code=200, + ) + + self.assertEqual(len(response.data), 1) + + # Add some more variants + + p = Part.objects.get(pk=10004) + + for i in range(100): + Part.objects.create( + name=f'Chair variant {i}', + description='A new chair variant', + variant_of=p, + ) + + # There should still be only one direct variant + response = self.get( + url, + { + 'variant_of': 10003, + }, + expected_code=200, + ) + + self.assertEqual(len(response.data), 1) + + # However, now should be 101 descendants + response = self.get( + url, + { + 'ancestor': 10003, + }, + expected_code=200, + ) + + self.assertEqual(len(response.data), 101) + + def test_variant_stock(self): + """ + Unit tests for the 'variant_stock' annotation, + which provides a stock count for *variant* parts + """ + + # Ensure the MPTT structure is in a known state before running tests + Part.objects.rebuild() + + # Initially, there are no "chairs" in stock, + # so each 'chair' template should report variant_stock=0 + url = reverse('api-part-list') + + # Look at the "detail" URL for the master chair template + response = self.get('/api/part/10000/', {}, expected_code=200) + + # This part should report 'zero' as variant stock + self.assertEqual(response.data['variant_stock'], 0) + + # Grab a list of all variant chairs *under* the master template + response = self.get( + url, + { + 'ancestor': 10000, + }, + expected_code=200, + ) + + # 4 total descendants + self.assertEqual(len(response.data), 4) + + for variant in response.data: + self.assertEqual(variant['variant_stock'], 0) + + # Now, let's make some variant stock + for variant in Part.objects.get(pk=10000).get_descendants(include_self=False): + StockItem.objects.create( + part=variant, + quantity=100, + ) + + response = self.get('/api/part/10000/', {}, expected_code=200) + + self.assertEqual(response.data['in_stock'], 0) + self.assertEqual(response.data['variant_stock'], 400) + + # Check that each variant reports the correct stock quantities + response = self.get( + url, + { + 'ancestor': 10000, + }, + expected_code=200, + ) + + expected_variant_stock = { + 10001: 0, + 10002: 0, + 10003: 100, + 10004: 0, + } + + for variant in response.data: + self.assertEqual(variant['in_stock'], 100) + self.assertEqual(variant['variant_stock'], expected_variant_stock[variant['pk']]) + + # Add some 'sub variants' for the green chair variant + green_chair = Part.objects.get(pk=10004) + + for i in range(10): + gcv = Part.objects.create( + name=f"GC Var {i}", + description="Green chair variant", + variant_of=green_chair, + ) + + StockItem.objects.create( + part=gcv, + quantity=50, + ) + + # Spot check of some values + response = self.get('/api/part/10000/', {}) + self.assertEqual(response.data['variant_stock'], 900) + + response = self.get('/api/part/10004/', {}) + self.assertEqual(response.data['variant_stock'], 500) + class PartDetailTests(InvenTreeAPITestCase): """ @@ -578,7 +757,12 @@ class PartDetailTests(InvenTreeAPITestCase): 'part', 'location', 'bom', + 'company', 'test_templates', + 'manufacturer_part', + 'supplier_part', + 'order', + 'stock', ] roles = [ @@ -805,6 +989,38 @@ class PartDetailTests(InvenTreeAPITestCase): # And now check that the image has been set p = Part.objects.get(pk=pk) + def test_details(self): + """ + Test that the required details are available + """ + + p = Part.objects.get(pk=1) + + url = reverse('api-part-detail', kwargs={'pk': 1}) + + data = self.get(url, expected_code=200).data + + # How many parts are 'on order' for this part? + lines = order.models.PurchaseOrderLineItem.objects.filter( + part__part__pk=1, + order__status__in=PurchaseOrderStatus.OPEN, + ) + + on_order = 0 + + # Calculate the "on_order" quantity by hand, + # to check it matches the API value + for line in lines: + on_order += line.quantity + on_order -= line.received + + self.assertEqual(on_order, data['ordering']) + self.assertEqual(on_order, p.on_order) + + # Some other checks + self.assertEqual(data['in_stock'], 9000) + self.assertEqual(data['unallocated_stock'], 9000) + class PartAPIAggregationTest(InvenTreeAPITestCase): """ @@ -1123,6 +1339,12 @@ class BomItemTest(InvenTreeAPITestCase): self.assertEqual(len(response.data), 1) self.assertEqual(response.data[0]['pk'], bom_item.pk) + # Each item in response should contain expected keys + for el in response.data: + + for key in ['available_stock', 'available_substitute_stock']: + self.assertTrue(key in el) + def test_get_bom_detail(self): """ Get the detail view for a single BomItem object @@ -1132,6 +1354,26 @@ class BomItemTest(InvenTreeAPITestCase): response = self.get(url, expected_code=200) + expected_values = [ + 'allow_variants', + 'inherited', + 'note', + 'optional', + 'overage', + 'pk', + 'part', + 'quantity', + 'reference', + 'sub_part', + 'substitutes', + 'validated', + 'available_stock', + 'available_substitute_stock', + ] + + for key in expected_values: + self.assertTrue(key in response.data) + self.assertEqual(int(float(response.data['quantity'])), 25) # Increase the quantity @@ -1319,6 +1561,21 @@ class BomItemTest(InvenTreeAPITestCase): response = self.get(url, expected_code=200) self.assertEqual(len(response.data), 5) + # The BomItem detail endpoint should now also reflect the substitute data + data = self.get( + reverse('api-bom-item-detail', kwargs={'pk': bom_item.pk}), + expected_code=200 + ).data + + # 5 substitute parts + self.assertEqual(len(data['substitutes']), 5) + + # 5 x 1,000 stock quantity + self.assertEqual(data['available_substitute_stock'], 5000) + + # 9,000 stock directly available + self.assertEqual(data['available_stock'], 9000) + def test_bom_item_uses(self): """ Tests for the 'uses' field @@ -1372,6 +1629,44 @@ class BomItemTest(InvenTreeAPITestCase): self.assertEqual(len(response.data), i) + def test_bom_variant_stock(self): + """ + Test for 'available_variant_stock' annotation + """ + + Part.objects.rebuild() + + # BOM item we are interested in + bom_item = BomItem.objects.get(pk=1) + + response = self.get('/api/bom/1/', {}, expected_code=200) + + # Initially, no variant stock available + self.assertEqual(response.data['available_variant_stock'], 0) + + # Create some 'variants' of the referenced sub_part + bom_item.sub_part.is_template = True + bom_item.sub_part.save() + + for i in range(10): + # Create a variant part + vp = Part.objects.create( + name=f"Var {i}", + description="Variant part", + variant_of=bom_item.sub_part, + ) + + # Create a stock item + StockItem.objects.create( + part=vp, + quantity=100, + ) + + # There should now be variant stock available + response = self.get('/api/bom/1/', {}, expected_code=200) + + self.assertEqual(response.data['available_variant_stock'], 1000) + class PartParameterTest(InvenTreeAPITestCase): """ diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py index 040b2c9e68..811acebc69 100644 --- a/InvenTree/part/test_part.py +++ b/InvenTree/part/test_part.py @@ -349,6 +349,26 @@ class PartSettingsTest(TestCase): part = Part(name='Hello', description='A thing', IPN='IPN123', revision='C') part.full_clean() + # Any duplicate IPN should raise an error + Part.objects.create(name='xyz', revision='1', description='A part', IPN='UNIQUE') + + # Case insensitive, so variations on spelling should throw an error + for ipn in ['UNiquE', 'uniQuE', 'unique']: + with self.assertRaises(ValidationError): + Part.objects.create(name='xyz', revision='2', description='A part', IPN=ipn) + + with self.assertRaises(ValidationError): + Part.objects.create(name='zyx', description='A part', IPN='UNIQUE') + + # However, *blank* / empty IPN values should be allowed, even if duplicates are not + # Note that leading / trailling whitespace characters are trimmed, too + Part.objects.create(name='abc', revision='1', description='A part', IPN=None) + Part.objects.create(name='abc', revision='2', description='A part', IPN='') + Part.objects.create(name='abc', revision='3', description='A part', IPN=None) + Part.objects.create(name='abc', revision='4', description='A part', IPN=' ') + Part.objects.create(name='abc', revision='5', description='A part', IPN=' ') + Part.objects.create(name='abc', revision='6', description='A part', IPN=' ') + class PartSubscriptionTests(TestCase): diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py index 55a3dc52eb..04d2b0a5f8 100644 --- a/InvenTree/part/urls.py +++ b/InvenTree/part/urls.py @@ -13,18 +13,6 @@ from django.conf.urls import url, include from . import views -sale_price_break_urls = [ - url(r'^new/', views.PartSalePriceBreakCreate.as_view(), name='sale-price-break-create'), - url(r'^(?P\d+)/edit/', views.PartSalePriceBreakEdit.as_view(), name='sale-price-break-edit'), - url(r'^(?P\d+)/delete/', views.PartSalePriceBreakDelete.as_view(), name='sale-price-break-delete'), -] - -internal_price_break_urls = [ - url(r'^new/', views.PartInternalPriceBreakCreate.as_view(), name='internal-price-break-create'), - url(r'^(?P\d+)/edit/', views.PartInternalPriceBreakEdit.as_view(), name='internal-price-break-edit'), - url(r'^(?P\d+)/delete/', views.PartInternalPriceBreakDelete.as_view(), name='internal-price-break-delete'), -] - part_parameter_urls = [ url(r'^template/new/', views.PartParameterTemplateCreate.as_view(), name='part-param-template-create'), url(r'^template/(?P\d+)/edit/', views.PartParameterTemplateEdit.as_view(), name='part-param-template-edit'), @@ -86,12 +74,6 @@ part_urls = [ # Part category url(r'^category/', include(category_urls)), - # Part price breaks - url(r'^sale-price/', include(sale_price_break_urls)), - - # Part internal price breaks - url(r'^internal-price/', include(internal_price_break_urls)), - # Part parameters url(r'^parameter/', include(part_parameter_urls)), diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 9f3cd07f7c..41e734ce2a 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -18,7 +18,6 @@ from django.forms import HiddenInput from django.conf import settings from django.contrib import messages -from moneyed import CURRENCIES from djmoney.contrib.exchange.models import convert_money from djmoney.contrib.exchange.exceptions import MissingRate @@ -33,7 +32,6 @@ from decimal import Decimal from .models import PartCategory, Part from .models import PartParameterTemplate from .models import PartCategoryParameterTemplate -from .models import PartSellPriceBreak, PartInternalPriceBreak from common.models import InvenTreeSetting from company.models import SupplierPart @@ -389,8 +387,12 @@ class PartDetail(InvenTreeRoleMixin, DetailView): context.update(**ctx) + show_price_history = InvenTreeSetting.get_setting('PART_SHOW_PRICE_HISTORY', False) + + context['show_price_history'] = show_price_history + # Pricing information - if InvenTreeSetting.get_setting('PART_SHOW_PRICE_HISTORY', False): + if show_price_history: ctx = self.get_pricing(self.get_quantity()) ctx['form'] = self.form_class(initial=self.get_initials()) @@ -1226,102 +1228,3 @@ class CategoryParameterTemplateDelete(AjaxDeleteView): return None return self.object - - -class PartSalePriceBreakCreate(AjaxCreateView): - """ - View for creating a sale price break for a part - """ - - model = PartSellPriceBreak - form_class = part_forms.EditPartSalePriceBreakForm - ajax_form_title = _('Add Price Break') - - def get_data(self): - return { - 'success': _('Added new price break') - } - - def get_part(self): - try: - part = Part.objects.get(id=self.request.GET.get('part')) - except (ValueError, Part.DoesNotExist): - part = None - - if part is None: - try: - part = Part.objects.get(id=self.request.POST.get('part')) - except (ValueError, Part.DoesNotExist): - part = None - - return part - - def get_form(self): - - form = super(AjaxCreateView, self).get_form() - form.fields['part'].widget = HiddenInput() - - return form - - def get_initial(self): - - initials = super(AjaxCreateView, self).get_initial() - - initials['part'] = self.get_part() - - default_currency = inventree_settings.currency_code_default() - currency = CURRENCIES.get(default_currency, None) - - if currency is not None: - initials['price'] = [1.0, currency] - - return initials - - -class PartSalePriceBreakEdit(AjaxUpdateView): - """ View for editing a sale price break """ - - model = PartSellPriceBreak - form_class = part_forms.EditPartSalePriceBreakForm - ajax_form_title = _('Edit Price Break') - - def get_form(self): - - form = super().get_form() - form.fields['part'].widget = HiddenInput() - - return form - - -class PartSalePriceBreakDelete(AjaxDeleteView): - """ View for deleting a sale price break """ - - model = PartSellPriceBreak - ajax_form_title = _("Delete Price Break") - ajax_template_name = "modal_delete_form.html" - - -class PartInternalPriceBreakCreate(PartSalePriceBreakCreate): - """ View for creating a internal price break for a part """ - - model = PartInternalPriceBreak - form_class = part_forms.EditPartInternalPriceBreakForm - ajax_form_title = _('Add Internal Price Break') - permission_required = 'roles.sales_order.add' - - -class PartInternalPriceBreakEdit(PartSalePriceBreakEdit): - """ View for editing a internal price break """ - - model = PartInternalPriceBreak - form_class = part_forms.EditPartInternalPriceBreakForm - ajax_form_title = _('Edit Internal Price Break') - permission_required = 'roles.sales_order.change' - - -class PartInternalPriceBreakDelete(PartSalePriceBreakDelete): - """ View for deleting a internal price break """ - - model = PartInternalPriceBreak - ajax_form_title = _("Delete Internal Price Break") - permission_required = 'roles.sales_order.delete' diff --git a/InvenTree/plugin/integration.py b/InvenTree/plugin/integration.py index de95adb8f8..7797134b14 100644 --- a/InvenTree/plugin/integration.py +++ b/InvenTree/plugin/integration.py @@ -94,6 +94,14 @@ class IntegrationPluginBase(MixinBase, plugin_base.InvenTreePluginBase): """ return getattr(self, 'is_package', False) + @property + def is_sample(self): + """ + Is this plugin part of the samples? + """ + path = str(self.package_path) + return path.startswith('plugin/samples/') + # region properties @property def slug(self): diff --git a/InvenTree/report/templates/report/inventree_po_report.html b/InvenTree/report/templates/report/inventree_po_report.html index 2be71f6c38..f999644c2e 100644 --- a/InvenTree/report/templates/report/inventree_po_report.html +++ b/InvenTree/report/templates/report/inventree_po_report.html @@ -4,7 +4,6 @@ {% load report %} {% load barcode %} {% load inventree_extras %} -{% load markdownify %} {% block page_margin %} margin: 2cm; diff --git a/InvenTree/script/translate.py b/InvenTree/script/translate.py deleted file mode 100644 index b41bb96788..0000000000 --- a/InvenTree/script/translate.py +++ /dev/null @@ -1,116 +0,0 @@ -""" -This script is used to simplify the translation process. - -Django provides a framework for working out which strings are "translatable", -and these strings are then dumped in a file under InvenTree/locale//LC_MESSAGES/django.po - -This script presents the translator with a list of strings which have not yet been translated, -allowing for a simpler and quicker translation process. - -If a string translation needs to be updated, this will still need to be done manually, -by editing the appropriate .po file. - -""" - -import argparse -import os -import sys - - -def manually_translate_file(filename, save=False): - """ - Manually translate a .po file. - Present any missing translation strings to the translator, - and write their responses back to the file. - """ - - print("Add manual translations to '{f}'".format(f=filename)) - print("For each missing translation:") - print("a) Directly enter a new tranlation in the target language") - print("b) Leave empty to skip") - print("c) Press Ctrl+C to exit") - - print("-------------------------") - input("Press to start") - print("") - - with open(filename, 'r') as f: - lines = f.readlines() - - out = [] - - # Context data - source_line = '' - msgid = '' - - for num, line in enumerate(lines): - # Keep track of context data BEFORE an empty msgstr object - line = line.strip() - - if line.startswith("#: "): - source_line = line.replace("#: ", "") - - elif line.startswith("msgid "): - msgid = line.replace("msgid ", "") - - if line.strip() == 'msgstr ""': - # We have found an empty translation! - - if msgid and len(msgid) > 0 and not msgid == '""': - print("Source:", source_line) - print("Enter translation for {t}".format(t=msgid)) - - try: - translation = str(input(">")) - except KeyboardInterrupt: - break - - if translation and len(translation) > 0: - # Update the line with the new translation - line = 'msgstr "{msg}"'.format(msg=translation) - - out.append(line + "\r\n") - - if save: - with open(filename, 'w') as output_file: - output_file.writelines(out) - - print("Translation done: written to", filename) - print("Run 'invoke translate' to rebuild translation data") - - -if __name__ == '__main__': - - MY_DIR = os.path.dirname(os.path.realpath(__file__)) - LOCALE_DIR = os.path.join(MY_DIR, '..', 'locale') - - if not os.path.exists(LOCALE_DIR): - print("Error: {d} does not exist!".format(d=LOCALE_DIR)) - sys.exit(1) - - parser = argparse.ArgumentParser(description="InvenTree Translation Helper") - - parser.add_argument('language', help='Language code', action='store') - - parser.add_argument('--fake', help="Do not save updated translations", action='store_true') - - args = parser.parse_args() - - language = args.language - - LANGUAGE_DIR = os.path.abspath(os.path.join(LOCALE_DIR, language)) - - # Check that a locale directory exists for the given language! - if not os.path.exists(LANGUAGE_DIR): - print("Error: Locale directory for language '{l}' does not exist".format(l=language)) - sys.exit(1) - - # Check that a .po file exists for the given language! - PO_FILE = os.path.join(LANGUAGE_DIR, 'LC_MESSAGES', 'django.po') - - if not os.path.exists(PO_FILE): - print("Error: File '{f}' does not exist".format(f=PO_FILE)) - sys.exit(1) - - # Ok, now we run the user through the translation file - manually_translate_file(PO_FILE, save=args.fake is not True) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 34563b38d7..d4fc5c93d1 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -402,11 +402,51 @@ class StockFilter(rest_filters.FilterSet): serialized = rest_filters.BooleanFilter(label='Has serial number', method='filter_serialized') def filter_serialized(self, queryset, name, value): + """ + Filter by whether the StockItem has a serial number (or not) + """ + + q = Q(serial=None) | Q(serial='') if str2bool(value): - queryset = queryset.exclude(serial=None) + queryset = queryset.exclude(q) else: - queryset = queryset.filter(serial=None) + queryset = queryset.filter(q) + + return queryset + + has_batch = rest_filters.BooleanFilter(label='Has batch code', method='filter_has_batch') + + def filter_has_batch(self, queryset, name, value): + """ + Filter by whether the StockItem has a batch code (or not) + """ + + q = Q(batch=None) | Q(batch='') + + if str2bool(value): + queryset = queryset.exclude(q) + else: + queryset = queryset.filter(q) + + return queryset + + tracked = rest_filters.BooleanFilter(label='Tracked', method='filter_tracked') + + def filter_tracked(self, queryset, name, value): + """ + Filter by whether this stock item is *tracked*, meaning either: + - It has a serial number + - It has a batch code + """ + + q_batch = Q(batch=None) | Q(batch='') + q_serial = Q(serial=None) | Q(serial='') + + if str2bool(value): + queryset = queryset.exclude(q_batch & q_serial) + else: + queryset = queryset.filter(q_batch & q_serial) return queryset @@ -1105,7 +1145,6 @@ class StockItemTestResultList(generics.ListCreateAPIView): ] filter_fields = [ - 'stock_item', 'test', 'user', 'result', @@ -1114,6 +1153,38 @@ class StockItemTestResultList(generics.ListCreateAPIView): ordering = 'date' + def filter_queryset(self, queryset): + + params = self.request.query_params + + queryset = super().filter_queryset(queryset) + + # Filter by stock item + item = params.get('stock_item', None) + + if item is not None: + try: + item = StockItem.objects.get(pk=item) + + items = [item] + + # Do we wish to also include test results for 'installed' items? + include_installed = str2bool(params.get('include_installed', False)) + + if include_installed: + # Include items which are installed "underneath" this item + # Note that this function is recursive! + installed_items = item.get_installed_items(cascade=True) + + items += [it for it in installed_items] + + queryset = queryset.filter(stock_item__in=items) + + except (ValueError, StockItem.DoesNotExist): + pass + + return queryset + def get_serializer(self, *args, **kwargs): try: kwargs['user_detail'] = str2bool(self.request.query_params.get('user_detail', False)) @@ -1189,6 +1260,15 @@ class StockTrackingList(generics.ListAPIView): if not deltas: deltas = {} + # Add part detail + if 'part' in deltas: + try: + part = Part.objects.get(pk=deltas['part']) + serializer = PartBriefSerializer(part) + deltas['part_detail'] = serializer.data + except: + pass + # Add location detail if 'location' in deltas: try: diff --git a/InvenTree/stock/migrations/0074_alter_stockitem_batch.py b/InvenTree/stock/migrations/0074_alter_stockitem_batch.py new file mode 100644 index 0000000000..646e25199a --- /dev/null +++ b/InvenTree/stock/migrations/0074_alter_stockitem_batch.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.12 on 2022-04-26 10:19 + +from django.db import migrations, models +import stock.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0073_alter_stockitem_belongs_to'), + ] + + operations = [ + migrations.AlterField( + model_name='stockitem', + name='batch', + field=models.CharField(blank=True, default=stock.models.generate_batch_code, help_text='Batch code for this stock item', max_length=100, null=True, verbose_name='Batch Code'), + ), + ] diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index 171ee7e0a3..39697c1bca 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -8,6 +8,8 @@ from __future__ import unicode_literals import os +from jinja2 import Template + from django.utils.translation import gettext_lazy as _ from django.core.exceptions import ValidationError, FieldError from django.urls import reverse @@ -213,6 +215,32 @@ class StockItemManager(TreeManager): ) +def generate_batch_code(): + """ + Generate a default 'batch code' for a new StockItem. + + This uses the value of the 'STOCK_BATCH_CODE_TEMPLATE' setting (if configured), + which can be passed through a simple template. + """ + + batch_template = common.models.InvenTreeSetting.get_setting('STOCK_BATCH_CODE_TEMPLATE', '') + + now = datetime.now() + + # Pass context data through to the template randering. + # The folowing context variables are availble for custom batch code generation + context = { + 'date': now, + 'year': now.year, + 'month': now.month, + 'day': now.day, + 'hour': now.minute, + 'minute': now.minute, + } + + return Template(batch_template).render(context) + + class StockItem(MPTTModel): """ A StockItem object represents a quantity of physical instances of a part. @@ -453,6 +481,14 @@ class StockItem(MPTTModel): super().clean() + # Strip serial number field + if type(self.serial) is str: + self.serial = self.serial.strip() + + # Strip batch code field + if type(self.batch) is str: + self.batch = self.batch.strip() + try: if self.part.trackable: # Trackable parts must have integer values for quantity field! @@ -636,7 +672,8 @@ class StockItem(MPTTModel): batch = models.CharField( verbose_name=_('Batch Code'), max_length=100, blank=True, null=True, - help_text=_('Batch code for this stock item') + help_text=_('Batch code for this stock item'), + default=generate_batch_code, ) quantity = models.DecimalField( @@ -718,6 +755,33 @@ class StockItem(MPTTModel): help_text=_('Select Owner'), related_name='stock_items') + @transaction.atomic + def convert_to_variant(self, variant, user, notes=None): + """ + Convert this StockItem instance to a "variant", + i.e. change the "part" reference field + """ + + if not variant: + # Ignore null values + return + + if variant == self.part: + # Variant is the same as the current part + return + + self.part = variant + self.save() + + self.add_tracking_entry( + StockHistoryCode.CONVERTED_TO_VARIANT, + user, + deltas={ + 'part': variant.pk, + }, + notes=_('Converted to part') + ': ' + variant.full_name, + ) + def get_item_owner(self): """ Return the closest "owner" for this StockItem. diff --git a/InvenTree/stock/templates/stock/item.html b/InvenTree/stock/templates/stock/item.html index 40d99577f9..75e53d6758 100644 --- a/InvenTree/stock/templates/stock/item.html +++ b/InvenTree/stock/templates/stock/item.html @@ -4,7 +4,6 @@ {% load inventree_extras %} {% load i18n %} {% load l10n %} -{% load markdownify %} {% block sidebar %} {% include "stock/stock_sidebar.html" %} @@ -27,11 +26,12 @@
        -
        +
        + {% include "filter_list.html" with id="stocktracking" %}
        - +
        @@ -133,24 +133,16 @@
        -
        -
        -

        {% trans "Stock Item Notes" %}

        -
        -
        -
        - -
        +
        +

        {% trans "Stock Item Notes" %}

        + {% include "spacer.html" %} +
        + {% include "notes_buttons.html" %}
        - {% if item.notes %} - {{ item.notes | markdownify }} - {% endif %} +
        @@ -235,18 +227,21 @@ reload: true, } ); - }); - $('#edit-notes').click(function() { - constructForm('{% url "api-stock-detail" item.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); + }); + + onPanelLoad('notes', function() { + setupNotesField( + 'stock-notes', + '{% url "api-stock-detail" item.pk %}', + { + {% if roles.stock.change and user_owns_item %} + editable: true, + {% else %} + editable: false, + {% endif %} + } + ); }); enableDragAndDrop( @@ -348,7 +343,6 @@ ); }); - loadStockTrackingTable($("#track-table"), { params: { ordering: '-date', diff --git a/InvenTree/stock/test_api.py b/InvenTree/stock/test_api.py index 73bee54110..7f94c6dedf 100644 --- a/InvenTree/stock/test_api.py +++ b/InvenTree/stock/test_api.py @@ -210,6 +210,46 @@ class StockItemListTest(StockAPITestCase): for item in response: self.assertIsNone(item['serial']) + def test_filter_by_has_batch(self): + """ + Test the 'has_batch' filter, which tests if the stock item has been assigned a batch code + """ + + with_batch = self.get_stock(has_batch=1) + without_batch = self.get_stock(has_batch=0) + + n_stock_items = StockItem.objects.all().count() + + # Total sum should equal the total count of stock items + self.assertEqual(n_stock_items, len(with_batch) + len(without_batch)) + + for item in with_batch: + self.assertFalse(item['batch'] in [None, '']) + + for item in without_batch: + self.assertTrue(item['batch'] in [None, '']) + + def test_filter_by_tracked(self): + """ + Test the 'tracked' filter. + This checks if the stock item has either a batch code *or* a serial number + """ + + tracked = self.get_stock(tracked=True) + untracked = self.get_stock(tracked=False) + + n_stock_items = StockItem.objects.all().count() + + self.assertEqual(n_stock_items, len(tracked) + len(untracked)) + + blank = [None, ''] + + for item in tracked: + self.assertTrue(item['batch'] not in blank or item['serial'] not in blank) + + for item in untracked: + self.assertTrue(item['batch'] in blank and item['serial'] in blank) + def test_filter_by_expired(self): """ Filter StockItem by expiry status diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index 079f9c2dc9..b0661dd0e3 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -644,6 +644,16 @@ class StockItemConvert(AjaxUpdateView): return form + def save(self, obj, form): + + stock_item = self.get_object() + + variant = form.cleaned_data.get('part', None) + + stock_item.convert_to_variant(variant, user=self.request.user) + + return stock_item + class StockLocationCreate(AjaxCreateView): """ diff --git a/InvenTree/templates/InvenTree/settings/plugin.html b/InvenTree/templates/InvenTree/settings/plugin.html index 139ce0d41a..2366096b87 100644 --- a/InvenTree/templates/InvenTree/settings/plugin.html +++ b/InvenTree/templates/InvenTree/settings/plugin.html @@ -24,6 +24,7 @@ {% include "InvenTree/settings/setting.html" with key="ENABLE_PLUGINS_URL" icon="fa-link" %} {% include "InvenTree/settings/setting.html" with key="ENABLE_PLUGINS_NAVIGATION" icon="fa-sitemap" %} {% include "InvenTree/settings/setting.html" with key="ENABLE_PLUGINS_APP" icon="fa-rocket" %} + {% include "InvenTree/settings/setting.html" with key="PLUGIN_ON_STARTUP" %}
        @@ -76,6 +77,12 @@ {% endfor %} {% endif %} + {% if plugin.is_sample %} + + {% trans "code sample" %} + + {% endif %} + {% if plugin.website %} {% endif %} diff --git a/InvenTree/templates/InvenTree/settings/settings.html b/InvenTree/templates/InvenTree/settings/settings.html index dbb526cfd3..0039e8ee1a 100644 --- a/InvenTree/templates/InvenTree/settings/settings.html +++ b/InvenTree/templates/InvenTree/settings/settings.html @@ -89,7 +89,7 @@ $('table').find('.boolean-setting').change(function() { }, { method: 'PATCH', - onSuccess: function(data) { + success: function(data) { }, error: function(xhr) { showApiError(xhr, url); diff --git a/InvenTree/templates/InvenTree/settings/stock.html b/InvenTree/templates/InvenTree/settings/stock.html index a3c0940c1f..f0cd403d68 100644 --- a/InvenTree/templates/InvenTree/settings/stock.html +++ b/InvenTree/templates/InvenTree/settings/stock.html @@ -11,6 +11,7 @@ + {% include "InvenTree/settings/setting.html" with key="STOCK_BATCH_CODE_TEMPLATE" icon="fa-layer-group" %} {% include "InvenTree/settings/setting.html" with key="STOCK_ENABLE_EXPIRY" icon="fa-stopwatch" %} {% include "InvenTree/settings/setting.html" with key="STOCK_STALE_DAYS" icon="fa-calendar" %} {% include "InvenTree/settings/setting.html" with key="STOCK_ALLOW_EXPIRED_SALE" icon="fa-truck" %} diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html index d3c8ed8a59..0739b42b6e 100644 --- a/InvenTree/templates/base.html +++ b/InvenTree/templates/base.html @@ -48,6 +48,7 @@ + @@ -160,6 +161,7 @@ + diff --git a/InvenTree/templates/js/translated/bom.js b/InvenTree/templates/js/translated/bom.js index 93e1562a38..0d27a5e028 100644 --- a/InvenTree/templates/js/translated/bom.js +++ b/InvenTree/templates/js/translated/bom.js @@ -798,17 +798,38 @@ function loadBomTable(table, options={}) { }); cols.push({ - field: 'sub_part_detail.stock', + field: 'available_stock', title: '{% trans "Available" %}', searchable: false, sortable: true, formatter: function(value, row) { var url = `/part/${row.sub_part_detail.pk}/?display=part-stock`; - var text = value; - if (value == null || value <= 0) { - text = `{% trans "No Stock" %}`; + // Calculate total "available" (unallocated) quantity + var base_stock = row.available_stock; + var substitute_stock = row.available_substitute_stock || 0; + var variant_stock = row.allow_variants ? (row.available_variant_stock || 0) : 0; + + var available_stock = base_stock + substitute_stock + variant_stock; + + var text = `${available_stock}`; + + if (available_stock <= 0) { + text = `{% trans "No Stock Available" %}`; + } else { + var extra = ''; + if ((substitute_stock > 0) && (variant_stock > 0)) { + extra = '{% trans "Includes variant and substitute stock" %}'; + } else if (variant_stock > 0) { + extra = '{% trans "Includes variant stock" %}'; + } else if (substitute_stock > 0) { + extra = '{% trans "Includes substitute stock" %}'; + } + + if (extra) { + text += ``; + } } return renderLink(text, url); @@ -902,8 +923,10 @@ function loadBomTable(table, options={}) { formatter: function(value, row) { var can_build = 0; + var available = row.available_stock + (row.available_substitute_stock || 0) + (row.available_variant_stock || 0); + if (row.quantity > 0) { - can_build = row.sub_part_detail.stock / row.quantity; + can_build = available / row.quantity; } return +can_build.toFixed(2); @@ -914,11 +937,11 @@ function loadBomTable(table, options={}) { var cb_b = 0; if (rowA.quantity > 0) { - cb_a = rowA.sub_part_detail.stock / rowA.quantity; + cb_a = (rowA.available_stock + rowA.available_substitute_stock) / rowA.quantity; } if (rowB.quantity > 0) { - cb_b = rowB.sub_part_detail.stock / rowB.quantity; + cb_b = (rowB.available_stock + rowB.available_substitute_stock) / rowB.quantity; } return (cb_a > cb_b) ? 1 : -1; diff --git a/InvenTree/templates/js/translated/build.js b/InvenTree/templates/js/translated/build.js index d4db965ebd..eb955d7ff0 100644 --- a/InvenTree/templates/js/translated/build.js +++ b/InvenTree/templates/js/translated/build.js @@ -1421,9 +1421,41 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { sortable: true, }, { - field: 'sub_part_detail.stock', + field: 'available_stock', title: '{% trans "Available" %}', sortable: true, + formatter: function(value, row) { + + var url = `/part/${row.sub_part_detail.pk}/?display=part-stock`; + + // Calculate total "available" (unallocated) quantity + var base_stock = row.available_stock; + var substitute_stock = row.available_substitute_stock || 0; + var variant_stock = row.allow_variants ? (row.available_variant_stock || 0) : 0; + + var available_stock = base_stock + substitute_stock + variant_stock; + + var text = `${available_stock}`; + + if (available_stock <= 0) { + text = `{% trans "No Stock Available" %}`; + } else { + var extra = ''; + if ((substitute_stock > 0) && (variant_stock > 0)) { + extra = '{% trans "Includes variant and substitute stock" %}'; + } else if (variant_stock > 0) { + extra = '{% trans "Includes variant stock" %}'; + } else if (substitute_stock > 0) { + extra = '{% trans "Includes substitute stock" %}'; + } + + if (extra) { + text += ``; + } + } + + return renderLink(text, url); + } }, { field: 'allocated', diff --git a/InvenTree/templates/js/translated/helpers.js b/InvenTree/templates/js/translated/helpers.js index 1925cb47ac..c464ad3645 100644 --- a/InvenTree/templates/js/translated/helpers.js +++ b/InvenTree/templates/js/translated/helpers.js @@ -10,6 +10,7 @@ makeProgressBar, renderLink, select2Thumbnail, + setupNotesField, thumbnailImage yesNoLabel, */ @@ -221,3 +222,93 @@ function renderLink(text, url, options={}) { return `${text}`; } + + +function setupNotesField(element, url, options={}) { + + var editable = options.editable || false; + + // Read initial notes value from the URL + var initial = null; + + inventreeGet(url, {}, { + async: false, + success: function(response) { + initial = response[options.notes_field || 'notes']; + }, + }); + + var toolbar_icons = [ + 'preview', '|', + ]; + + if (editable) { + // Heading icons + toolbar_icons.push('heading-1', 'heading-2', 'heading-3', '|'); + + // Font style + toolbar_icons.push('bold', 'italic', 'strikethrough', '|'); + + // Text formatting + toolbar_icons.push('unordered-list', 'ordered-list', 'code', 'quote', '|'); + + // Elements + toolbar_icons.push('table', 'link', 'image'); + } + + // Markdown syntax guide + toolbar_icons.push('|', 'guide'); + + const mde = new EasyMDE({ + element: document.getElementById(element), + initialValue: initial, + toolbar: toolbar_icons, + shortcuts: [], + }); + + + // Hide the toolbar + $(`#${element}`).next('.EasyMDEContainer').find('.editor-toolbar').hide(); + + if (!editable) { + // Set readonly + mde.codemirror.setOption('readOnly', true); + + // Hide the "edit" and "save" buttons + $('#edit-notes').hide(); + $('#save-notes').hide(); + + } else { + mde.togglePreview(); + + // Add callback for "edit" button + $('#edit-notes').click(function() { + $('#edit-notes').hide(); + $('#save-notes').show(); + + // Show the toolbar + $(`#${element}`).next('.EasyMDEContainer').find('.editor-toolbar').show(); + + mde.togglePreview(); + }); + + // Add callback for "save" button + $('#save-notes').click(function() { + + var data = {}; + + data[options.notes_field || 'notes'] = mde.value(); + + inventreePut(url, data, { + method: 'PATCH', + success: function(response) { + showMessage('{% trans "Notes updated" %}', {style: 'success'}); + }, + error: function(xhr) { + showApiError(xhr, url); + } + }); + }); + } +} + diff --git a/InvenTree/templates/js/translated/model_renderers.js b/InvenTree/templates/js/translated/model_renderers.js index bdc2528af9..c921c83bea 100644 --- a/InvenTree/templates/js/translated/model_renderers.js +++ b/InvenTree/templates/js/translated/model_renderers.js @@ -99,14 +99,22 @@ function renderStockItem(name, data, parameters={}, options={}) { var stock_detail = ''; - if (data.serial && data.quantity == 1) { - stock_detail = `{% trans "Serial Number" %}: ${data.serial}`; - } else if (data.quantity == 0) { + if (data.quantity == 0) { stock_detail = `{% trans "No Stock"% }`; } else { - stock_detail = `{% trans "Quantity" %}: ${data.quantity}`; + if (data.serial && data.quantity == 1) { + stock_detail = `{% trans "Serial Number" %}: ${data.serial}`; + } else { + stock_detail = `{% trans "Quantity" %}: ${data.quantity}`; + } + + if (data.batch) { + stock_detail += ` - {% trans "Batch" %}: ${data.batch}`; + } } + + var html = ` ${part_detail} @@ -193,7 +201,7 @@ function renderPart(name, data, parameters={}, options={}) { ${stock_data} ${extra} - ${renderId('{% trans "Part ID" $}', data.pk, parameters)} + ${renderId('{% trans "Part ID" %}', data.pk, parameters)} `; diff --git a/InvenTree/templates/js/translated/notification.js b/InvenTree/templates/js/translated/notification.js index a289dcb8f7..74079669ab 100644 --- a/InvenTree/templates/js/translated/notification.js +++ b/InvenTree/templates/js/translated/notification.js @@ -171,6 +171,9 @@ function notificationCheck(force = false) { { success: function(response) { updateNotificationIndicator(response.length); + }, + error: function(xhr) { + console.warn('Could not access server: /api/notifications'); } } ); diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index f26d87653a..6fd144d5f0 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -293,6 +293,7 @@ function categoryFields() { return { parent: { help_text: '{% trans "Parent part category" %}', + required: false, }, name: {}, description: {}, @@ -373,6 +374,9 @@ function duplicatePart(pk, options={}) { // Override the "variant_of" field data.variant_of = pk; + + // By default, disable "is_template" when making a variant *of* a template + data.is_template = false; } constructForm('{% url "api-part-list" %}', { @@ -668,7 +672,20 @@ function loadPartVariantTable(table, partId, options={}) { field: 'in_stock', title: '{% trans "Stock" %}', formatter: function(value, row) { - return renderLink(value, `/part/${row.pk}/?display=part-stock`); + + var base_stock = row.in_stock; + var variant_stock = row.variant_stock || 0; + + var total = base_stock + variant_stock; + + var text = `${total}`; + + if (variant_stock > 0) { + text = `${text}`; + text += ``; + } + + return renderLink(text, `/part/${row.pk}/?display=part-stock`); } } ]; @@ -1900,7 +1917,9 @@ function loadPriceBreakTable(table, options) { formatNoMatches: function() { return `{% trans "No ${human_name} information found" %}`; }, - queryParams: {part: options.part}, + queryParams: { + part: options.part + }, url: options.url, onLoadSuccess: function(tableData) { if (linkedGraph) { @@ -2006,36 +2025,45 @@ function initPriceBreakSet(table, options) { } pb_new_btn.click(function() { - launchModalForm(pb_new_url, - { - success: reloadPriceBreakTable, - data: { - part: part_id, - } - } - ); + + constructForm(pb_new_url, { + fields: { + part: { + hidden: true, + value: part_id, + }, + quantity: {}, + price: {}, + price_currency: {}, + }, + method: 'POST', + title: '{% trans "Add Price Break" %}', + onSuccess: reloadPriceBreakTable, + }); }); table.on('click', `.button-${pb_url_slug}-delete`, function() { var pk = $(this).attr('pk'); - launchModalForm( - `/part/${pb_url_slug}/${pk}/delete/`, - { - success: reloadPriceBreakTable - } - ); + constructForm(`${pb_url}${pk}/`, { + method: 'DELETE', + title: '{% trans "Delete Price Break" %}', + onSuccess: reloadPriceBreakTable, + }); }); table.on('click', `.button-${pb_url_slug}-edit`, function() { var pk = $(this).attr('pk'); - launchModalForm( - `/part/${pb_url_slug}/${pk}/edit/`, - { - success: reloadPriceBreakTable - } - ); + constructForm(`${pb_url}${pk}/`, { + fields: { + quantity: {}, + price: {}, + price_currency: {}, + }, + title: '{% trans "Edit Price Break" %}', + onSuccess: reloadPriceBreakTable, + }); }); } diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js index b7afdbca44..de42528142 100644 --- a/InvenTree/templates/js/translated/stock.js +++ b/InvenTree/templates/js/translated/stock.js @@ -107,6 +107,7 @@ function stockLocationFields(options={}) { var fields = { parent: { help_text: '{% trans "Parent stock location" %}', + required: false, }, name: {}, description: {}, @@ -240,9 +241,11 @@ function stockItemFields(options={}) { serial: { icon: 'fa-hashtag', }, + batch: { + icon: 'fa-layer-group', + }, status: {}, expiry_date: {}, - batch: {}, purchase_price: { icon: 'fa-dollar-sign', }, @@ -963,6 +966,10 @@ function adjustStock(action, items, options={}) { quantity = `#${item.serial}`; } + if (item.batch) { + quantity += ` - {% trans "Batch" %}: ${item.batch}`; + } + var actionInput = ''; if (actionTitle != null) { @@ -1331,14 +1338,27 @@ function loadStockTestResultsTable(table, options) { }); // Once the test template data are loaded, query for test results + + var filters = loadTableFilters(filterKey); + + var query_params = { + stock_item: options.stock_item, + user_detail: true, + attachment_detail: true, + ordering: '-date', + }; + + if ('result' in filters) { + query_params.result = filters.result; + } + + if ('include_installed' in filters) { + query_params.include_installed = filters.include_installed; + } + inventreeGet( '{% url "api-stock-test-result-list" %}', - { - stock_item: options.stock_item, - user_detail: true, - attachment_detail: true, - ordering: '-date', - }, + query_params, { success: function(data) { // Iterate through the returned test data @@ -2301,6 +2321,23 @@ function loadStockTrackingTable(table, options) { var cols = []; + var filterTarget = '#filter-list-stocktracking'; + + var filterKey = 'stocktracking'; + + var filters = loadTableFilters(filterKey); + + var params = options.params; + + var original = {}; + + for (var k in params) { + original[k] = params[k]; + filters[k] = params[k]; + } + + setupFilterList(filterKey, table, filterTarget); + // Date cols.push({ field: 'date', @@ -2338,6 +2375,19 @@ function loadStockTrackingTable(table, options) { return html; } + // Part information + if (details.part) { + html += ``; + } + // Location information if (details.location) { @@ -2475,27 +2525,10 @@ function loadStockTrackingTable(table, options) { } }); - /* - // 2021-05-11 - Ability to edit or delete StockItemTracking entries is now removed - cols.push({ - sortable: false, - formatter: function(value, row, index, field) { - // Manually created entries can be edited or deleted - if (false && !row.system) { - var bEdit = ""; - var bDel = ""; - - return "
        " + bEdit + bDel + "
        "; - } else { - return ""; - } - } - }); - */ - table.inventreeTable({ method: 'get', - queryParams: options.params, + queryParams: filters, + original: original, columns: cols, url: options.url, }); @@ -2626,7 +2659,8 @@ function installStockItem(stock_item_id, part_id, options={}) {
        • {% trans "The Stock Item links to a Part which is the BOM for this Stock Item" %}
        • {% trans "The Stock Item is currently available in stock" %}
        • -
        • {% trans "The Stock Item is serialized and does not belong to another item" %}
        • +
        • {% trans "The Stock Item is not already installed in another item" %}
        • +
        • {% trans "The Stock Item is tracked by either a batch code or serial number" %}
        `; @@ -2652,7 +2686,7 @@ function installStockItem(stock_item_id, part_id, options={}) { filters: { part_detail: true, in_stock: true, - serialized: true, + tracked: true, }, adjustFilters: function(filters, opts) { var part = getFormFieldValue('part', {}, opts); diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js index 6212568950..c806afd4b1 100644 --- a/InvenTree/templates/js/translated/table_filters.js +++ b/InvenTree/templates/js/translated/table_filters.js @@ -234,10 +234,19 @@ function getAvailableTableFilters(tableKey) { title: '{% trans "Stock status" %}', description: '{% trans "Stock status" %}', }, + has_batch: { + title: '{% trans "Has batch code" %}', + type: 'bool', + }, batch: { title: '{% trans "Batch" %}', description: '{% trans "Batch code" %}', }, + tracked: { + title: '{% trans "Tracked" %}', + description: '{% trans "Stock item is tracked by either batch code or serial number" %}', + type: 'bool', + }, has_purchase_price: { type: 'bool', title: '{% trans "Has purchase price" %}', @@ -265,7 +274,16 @@ function getAvailableTableFilters(tableKey) { // Filters for the 'stock test' table if (tableKey == 'stocktests') { - return {}; + return { + result: { + type: 'bool', + title: '{% trans "Test Passed" %}', + }, + include_installed: { + type: 'bool', + title: '{% trans "Include Installed Items" %}', + } + }; } // Filters for the 'part test template' table diff --git a/InvenTree/templates/notes_buttons.html b/InvenTree/templates/notes_buttons.html new file mode 100644 index 0000000000..ac016a87e2 --- /dev/null +++ b/InvenTree/templates/notes_buttons.html @@ -0,0 +1,8 @@ +{% load i18n %} + + + \ No newline at end of file diff --git a/docker/dev-config.env b/docker/.env similarity index 83% rename from docker/dev-config.env rename to docker/.env index 63a0afe4fb..54e37ea7a0 100644 --- a/docker/dev-config.env +++ b/docker/.env @@ -1,6 +1,6 @@ # InvenTree environment variables for a development setup -# Set DEBUG to False for a production environment! +# Set DEBUG to True for a development setup INVENTREE_DEBUG=True INVENTREE_DEBUG_LEVEL=INFO @@ -15,3 +15,5 @@ INVENTREE_DB_PASSWORD=pgpassword # Enable plugins? INVENTREE_PLUGINS_ENABLED=True + +COMPOSE_PROJECT_NAME=inventree-development diff --git a/docker/Dockerfile b/docker/Dockerfile index 55a89210fe..9978460e8f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -137,7 +137,6 @@ ENV INVENTREE_CONFIG_FILE="${INVENTREE_DEV_DIR}/config.yaml" ENV INVENTREE_SECRET_KEY_FILE="${INVENTREE_DEV_DIR}/secret_key.txt" ENV INVENTREE_PLUGIN_FILE="${INVENTREE_DEV_DIR}/plugins.txt" - WORKDIR ${INVENTREE_HOME} # Entrypoint ensures that we are running in the python virtual environment diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml deleted file mode 100644 index ca0f837142..0000000000 --- a/docker/docker-compose.dev.yml +++ /dev/null @@ -1,106 +0,0 @@ -version: "3.8" - -# Docker compose recipe for InvenTree development server -# - Runs PostgreSQL as the database backend -# - Uses built-in django webserver -# - Runs the InvenTree background worker process -# - Serves media and static content directly from Django webserver - -# IMPORANT NOTE: -# The InvenTree docker image does not clone source code from git. -# Instead, you must specify *where* the source code is located, -# (on your local machine). -# The django server will auto-detect any code changes and reload the server. - -services: - - # Database service - # Use PostgreSQL as the database backend - # Note: This can be changed to a different backend if required - inventree-dev-db: - container_name: inventree-dev-db - image: postgres:13 - ports: - - 5432/tcp - environment: - - PGDATA=/var/lib/postgresql/data/dev/pgdb - # The pguser and pgpassword values must be the same in the other containers - # Ensure that these are correctly configured in your dev-config.env file - - POSTGRES_USER=pguser - - POSTGRES_PASSWORD=pgpassword - volumes: - # Map 'data' volume such that postgres database is stored externally - - src:/var/lib/postgresql/data - restart: unless-stopped - - # InvenTree web server services - # Uses gunicorn as the web server - inventree-dev-server: - container_name: inventree-dev-server - depends_on: - - inventree-dev-db - build: - context: . - target: dev - ports: - # Expose web server on port 8000 - - 8000:8000 - # Note: If using the inventree-dev-proxy container (see below), - # comment out the "ports" directive (above) and uncomment the "expose" directive - #expose: - # - 8000 - volumes: - # Ensure you specify the location of the 'src' directory at the end of this file - - src:/home/inventree - env_file: - # Environment variables required for the dev server are configured in dev-config.env - - dev-config.env - restart: unless-stopped - - # Background worker process handles long-running or periodic tasks - inventree-dev-worker: - container_name: inventree-dev-worker - build: - context: . - target: dev - command: invoke worker - depends_on: - - inventree-dev-server - volumes: - # Ensure you specify the location of the 'src' directory at the end of this file - - src:/home/inventree - env_file: - # Environment variables required for the dev server are configured in dev-config.env - - dev-config.env - restart: unless-stopped - - ### Optional: Serve static and media files using nginx - ### Uncomment the following lines to enable nginx proxy for testing - ### Note: If enabling the proxy, change "ports" to "expose" for the inventree-dev-server container (above) - #inventree-dev-proxy: - # container_name: inventree-dev-proxy - # image: nginx:stable - # depends_on: - # - inventree-dev-server - # ports: - # # Change "8000" to the port that you want InvenTree web server to be available on - # - 8000:80 - # volumes: - # # Provide ./nginx.conf file to the container - # # Refer to the provided example file as a starting point - # - ./nginx.dev.conf:/etc/nginx/conf.d/default.conf:ro - # # nginx proxy needs access to static and media files - # - src:/var/www - # restart: unless-stopped - -volumes: - # NOTE: Change "../" to a directory on your local machine, where the InvenTree source code is located - # Persistent data, stored external to the container(s) - src: - driver: local - driver_opts: - type: none - o: bind - # This directory specified where InvenTree source code is stored "outside" the docker containers - # By default, this directory is one level above the "docker" directory - device: ../ diff --git a/docker/docker-compose.sqlite.yml b/docker/docker-compose.sqlite.yml index e42c43a09c..9800788b1d 100644 --- a/docker/docker-compose.sqlite.yml +++ b/docker/docker-compose.sqlite.yml @@ -21,32 +21,34 @@ services: build: context: . target: dev + # Cache the built image to be used by the inventree-dev-worker process + image: inventree-dev-image ports: # Expose web server on port 8000 - 8000:8000 volumes: # Ensure you specify the location of the 'src' directory at the end of this file - src:/home/inventree - env_file: - # Environment variables required for the dev server are configured in dev-config.env - - sqlite-config.env + environment: + - INVENTREE_DEBUG=True + - INVENTREE_DB_ENGINE=sqlite + - INVENTREE_DB_NAME=/home/inventree/db.sqlite3 restart: unless-stopped # Background worker process handles long-running or periodic tasks inventree-dev-worker: container_name: inventree-dev-worker - build: - context: . - target: dev + image: inventree-dev-image command: invoke worker depends_on: - inventree-dev-server volumes: # Ensure you specify the location of the 'src' directory at the end of this file - src:/home/inventree - env_file: - # Environment variables required for the dev server are configured in dev-config.env - - sqlite-config.env + environment: + - INVENTREE_DEBUG=True + - INVENTREE_DB_ENGINE=sqlite + - INVENTREE_DB_NAME=/home/inventree/db.sqlite3 restart: unless-stopped volumes: @@ -59,4 +61,4 @@ volumes: o: bind # This directory specified where InvenTree source code is stored "outside" the docker containers # By default, this directory is one level above the "docker" directory - device: ../ + device: ${INVENTREE_EXT_VOLUME:-../} diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index cef136bddb..e8bb12c44a 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,119 +1,104 @@ version: "3.8" -# Docker compose recipe for InvenTree +# Docker compose recipe for InvenTree development server # - Runs PostgreSQL as the database backend -# - Runs Gunicorn as the InvenTree web server +# - Uses built-in django webserver # - Runs the InvenTree background worker process -# - Runs nginx as a reverse proxy +# - Serves media and static content directly from Django webserver -# --------------------------------- -# IMPORTANT - READ BEFORE STARTING! -# --------------------------------- -# Before running, ensure that you change the "/path/to/data" directory, -# specified in the "volumes" section at the end of this file. -# This path determines where the InvenTree data will be stored! -# -# -# InvenTree Image Versions -# ------------------------ -# By default, this docker-compose script targets the STABLE version of InvenTree, -# image: inventree/inventree:stable -# -# To run the LATEST (development) version of InvenTree, change the target image to: -# image: inventree/inventree:latest -# -# Alternatively, you could target a specific tagged release version with (for example): -# image: inventree/inventree:0.5.3 -# -# NOTE: If you change the target image, ensure it is the same for the following containers: -# - inventree-server -# - inventree-worker +# IMPORANT NOTE: +# The InvenTree development image does not clone source code from git. +# Instead, it runs from source code on your local machine. +# The django server will auto-detect any code changes and reload the server. + +# If you have cloned the InvenTree git repo, and not made any changes to this file, +# then the default setup in this file should work straight out of the box, without modification services: + # Database service # Use PostgreSQL as the database backend - # Note: this can be changed to a different backend, - # just make sure that you change the INVENTREE_DB_xxx vars below - inventree-db: - container_name: inventree-db + # Note: This can be changed to a different backend if required + inventree-dev-db: + container_name: inventree-dev-db image: postgres:13 ports: - - 5432/tcp + - ${INVENTREE_DB_PORT:-5432}/tcp environment: - - PGDATA=/var/lib/postgresql/data/pgdb - # The pguser and pgpassword values must be the same in the other containers - # Ensure that these are correctly configured in your prod-config.env file - - POSTGRES_USER=pguser - - POSTGRES_PASSWORD=pgpassword + - PGDATA=/var/lib/postgresql/data/dev/pgdb + - POSTGRES_USER=${INVENTREE_DB_USER:?You must provide the 'INVENTREE_DB_USER' variable in the .env file} + - POSTGRES_PASSWORD=${INVENTREE_DB_PASSWORD:?You must provide the 'INVENTREE_DB_PASSWORD' variable in the .env file} + - POSTGRES_DB=${INVENTREE_DB_NAME:?You must provide the 'INVENTREE_DB_NAME' variable in the .env file} volumes: - # Map 'data' volume such that postgres database is stored externally - - data:/var/lib/postgresql/data/ + # Map 'data' volume such that postgres database is stored externally + - inventree_src:/var/lib/postgresql/data restart: unless-stopped # InvenTree web server services # Uses gunicorn as the web server - inventree-server: - container_name: inventree-server - # If you wish to specify a particular InvenTree version, do so here - image: inventree/inventree:stable - expose: - - 8000 + inventree-dev-server: + container_name: inventree-dev-server depends_on: - - inventree-db + - inventree-dev-db + build: + context: . + target: dev + # Cache the built image to be used by the inventree-dev-worker process + image: inventree-dev-image + ports: + # Expose web server on port 8000 + - 8000:8000 + # Note: If using the inventree-dev-proxy container (see below), + # comment out the "ports" directive (above) and uncomment the "expose" directive + #expose: + # - 8000 volumes: - # Data volume must map to /home/inventree/data - - data:/home/inventree/data + # Ensure you specify the location of the 'src' directory at the end of this file + - inventree_src:/home/inventree env_file: - # Environment variables required for the production server are configured in prod-config.env - - prod-config.env + - .env restart: unless-stopped # Background worker process handles long-running or periodic tasks - inventree-worker: - container_name: inventree-worker - # If you wish to specify a particular InvenTree version, do so here - image: inventree/inventree:stable + inventree-dev-worker: + container_name: inventree-dev-worker + image: inventree-dev-image command: invoke worker depends_on: - - inventree-db - - inventree-server + - inventree-dev-server volumes: - # Data volume must map to /home/inventree/data - - data:/home/inventree/data + # Ensure you specify the location of the 'src' directory at the end of this file + - inventree_src:/home/inventree env_file: - # Environment variables required for the production server are configured in prod-config.env - - prod-config.env + - .env restart: unless-stopped - # nginx acts as a reverse proxy - # static files are served directly by nginx - # media files are served by nginx, although authentication is redirected to inventree-server - # web requests are redirected to gunicorn - # NOTE: You will need to provide a working nginx.conf file! - inventree-proxy: - container_name: inventree-proxy - image: nginx:stable - depends_on: - - inventree-server - ports: - # Change "1337" to the port that you want InvenTree web server to be available on - - 1337:80 - volumes: - # Provide ./nginx.conf file to the container - # Refer to the provided example file as a starting point - - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro - # nginx proxy needs access to static and media files - - data:/var/www - restart: unless-stopped + ### Optional: Serve static and media files using nginx + ### Uncomment the following lines to enable nginx proxy for testing + ### Note: If enabling the proxy, change "ports" to "expose" for the inventree-dev-server container (above) + #inventree-dev-proxy: + # container_name: inventree-dev-proxy + # image: nginx:stable + # depends_on: + # - inventree-dev-server + # ports: + # # Change "8000" to the port that you want InvenTree web server to be available on + # - 8000:80 + # volumes: + # # Provide ./nginx.dev.conf file to the container + # # Refer to the provided example file as a starting point + # - ./nginx.dev.conf:/etc/nginx/conf.d/default.conf:ro + # # nginx proxy needs access to static and media files + # - inventree_src:/var/www + # restart: unless-stopped volumes: - # NOTE: Change /path/to/data to a directory on your local machine # Persistent data, stored external to the container(s) - data: + inventree_src: driver: local driver_opts: type: none o: bind - # This directory specified where InvenTree data are stored "outside" the docker containers - # Change this path to a local system path where you want InvenTree data stored - device: /path/to/data \ No newline at end of file + # This directory specified where InvenTree source code is stored "outside" the docker containers + # By default, this directory is one level above the "docker" directory + device: ${INVENTREE_EXT_VOLUME:-../} diff --git a/docker/init.sh b/docker/init.sh index 793661dc9f..088dd68e89 100644 --- a/docker/init.sh +++ b/docker/init.sh @@ -33,7 +33,7 @@ if [[ -n "$INVENTREE_PY_ENV" ]]; then source ${INVENTREE_PY_ENV}/bin/activate # Note: Python packages will have to be installed on first run - # e.g docker-compose -f docker-compose.dev.yml run inventree-dev-server invoke install + # e.g docker-compose run inventree-dev-server invoke update fi cd ${INVENTREE_HOME} diff --git a/docker/nginx.dev.conf b/docker/nginx.dev.conf index 8fc47e622c..f3085ef57b 100644 --- a/docker/nginx.dev.conf +++ b/docker/nginx.dev.conf @@ -4,24 +4,30 @@ server { # Listen for connection on (internal) port 80 listen 80; - location / { - # Change 'inventree-dev-server' to the name of the inventree server container, - # and '8000' to the INVENTREE_WEB_PORT (if not default) - proxy_pass http://inventree-dev-server:8000; + real_ip_header proxy_protocol; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; + location / { + + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-By $server_addr:$server_port; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header CLIENT_IP $remote_addr; + + proxy_pass_request_headers on; proxy_redirect off; client_max_body_size 100M; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_buffering off; proxy_request_buffering off; + # Change 'inventree-dev-server' to the name of the inventree server container, + # and '8000' to the INVENTREE_WEB_PORT (if not default) + proxy_pass http://inventree-dev-server:8000; + } # Redirect any requests for static files diff --git a/docker/prod-config.env b/docker/prod-config.env deleted file mode 100644 index a69fa10d2a..0000000000 --- a/docker/prod-config.env +++ /dev/null @@ -1,19 +0,0 @@ -# InvenTree environment variables for a production setup - -# Note: If your production setup varies from the example, you may want to change these values - -# Ensure debug is false for a production setup -INVENTREE_DEBUG=False -INVENTREE_LOG_LEVEL=WARNING - -# Database configuration options -# Note: The example setup is for a PostgreSQL database (change as required) -INVENTREE_DB_ENGINE=postgresql -INVENTREE_DB_NAME=inventree -INVENTREE_DB_HOST=inventree-db -INVENTREE_DB_PORT=5432 -INVENTREE_DB_USER=pguser -INVENTREE_DB_PASSWORD=pgpassword - -# Enable plugins? -INVENTREE_PLUGINS_ENABLED=False diff --git a/docker/production/.env b/docker/production/.env new file mode 100644 index 0000000000..220952bf23 --- /dev/null +++ b/docker/production/.env @@ -0,0 +1,34 @@ +# InvenTree environment variables for a postgresql production setup + +# Location of persistent database data (stored external to the docker containers) +# Note: You *must* un-comment this line, and point it to a path on your local machine + +# e.g. Linux +#INVENTREE_EXT_VOLUME=/home/me/inventree-data + +# e.g. Windows (docker desktop) +#INVENTREE_EXT_VOLUME=c:/Users/me/inventree-data + +# Default web port for the InvenTree server +INVENTREE_WEB_PORT=1337 + +# Ensure debug is false for a production setup +INVENTREE_DEBUG=False +INVENTREE_LOG_LEVEL=WARNING + +# Database configuration options +# Note: The example setup is for a PostgreSQL database +INVENTREE_DB_ENGINE=postgresql +INVENTREE_DB_NAME=inventree +INVENTREE_DB_HOST=inventree-db +INVENTREE_DB_PORT=5432 + +# Database credentials - These must be configured before running +# Uncomment the lines below, and change from the default values! +#INVENTREE_DB_USER=pguser +#INVENTREE_DB_PASSWORD=pgpassword + +# Enable plugins? +INVENTREE_PLUGINS_ENABLED=False + +COMPOSE_PROJECT_NAME=inventree-production diff --git a/docker/production/docker-compose.yml b/docker/production/docker-compose.yml new file mode 100644 index 0000000000..32fd3e0f48 --- /dev/null +++ b/docker/production/docker-compose.yml @@ -0,0 +1,124 @@ +version: "3.8" + +# Docker compose recipe for InvenTree production server +# - PostgreSQL as the database backend +# - gunicorn as the InvenTree web server +# - django-q as the InvenTree background worker process +# - nginx as a reverse proxy + +# --------------------- +# READ BEFORE STARTING! +# --------------------- + +# ----------------------------- +# Setting environment variables +# ----------------------------- +# Shared environment variables should be stored in the .env file +# Changes made to this file are reflected across all containers! +# +# IMPORTANT NOTE: +# You should not have to change *anything* within the docker-compose.yml file! +# Instead, make any changes in the .env file! +# The only *mandatory* change is to set the INVENTREE_EXT_VOLUME variable, +# which defines the directory (on your local machine) where persistent data are stored. + +# ------------------------ +# InvenTree Image Versions +# ------------------------ +# By default, this docker-compose script targets the STABLE version of InvenTree, +# image: inventree/inventree:stable +# +# To run the LATEST (development) version of InvenTree, change the target image to: +# image: inventree/inventree:latest +# +# Alternatively, you could target a specific tagged release version with (for example): +# image: inventree/inventree:0.5.3 +# +# NOTE: If you change the target image, ensure it is the same for the following containers: +# - inventree-server +# - inventree-worker + +services: + # Database service + # Use PostgreSQL as the database backend + inventree-db: + container_name: inventree-db + image: postgres:13 + ports: + - ${INVENTREE_DB_PORT:-5432}/tcp + environment: + - PGDATA=/var/lib/postgresql/data/pgdb + - POSTGRES_USER=${INVENTREE_DB_USER:?You must provide the 'INVENTREE_DB_USER' variable in the .env file} + - POSTGRES_PASSWORD=${INVENTREE_DB_PASSWORD:?You must provide the 'INVENTREE_DB_PASSWORD' variable in the .env file} + - POSTGRES_DB=${INVENTREE_DB_NAME:?You must provide the 'INVENTREE_DB_NAME' variable in the .env file} + volumes: + # Map 'data' volume such that postgres database is stored externally + - inventree_data:/var/lib/postgresql/data/ + restart: unless-stopped + + # InvenTree web server services + # Uses gunicorn as the web server + inventree-server: + container_name: inventree-server + # If you wish to specify a particular InvenTree version, do so here + image: inventree/inventree:stable + expose: + - 8000 + depends_on: + - inventree-db + env_file: + - .env + volumes: + # Data volume must map to /home/inventree/data + - inventree_data:/home/inventree/data + restart: unless-stopped + + # Background worker process handles long-running or periodic tasks + inventree-worker: + container_name: inventree-worker + # If you wish to specify a particular InvenTree version, do so here + image: inventree/inventree:stable + command: invoke worker + depends_on: + - inventree-db + - inventree-server + env_file: + - .env + volumes: + # Data volume must map to /home/inventree/data + - inventree_data:/home/inventree/data + restart: unless-stopped + + # nginx acts as a reverse proxy + # static files are served directly by nginx + # media files are served by nginx, although authentication is redirected to inventree-server + # web requests are redirected to gunicorn + # NOTE: You will need to provide a working nginx.conf file! + inventree-proxy: + container_name: inventree-proxy + image: nginx:stable + depends_on: + - inventree-server + env_file: + - .env + ports: + # Default web port is 1337 (can be changed in the .env file) + - ${INVENTREE_WEB_PORT:-1337}:80 + volumes: + # Provide nginx configuration file to the container + # Refer to the provided example file as a starting point + - ./nginx.prod.conf:/etc/nginx/conf.d/default.conf:ro + # nginx proxy needs access to static and media files + - inventree_data:/var/www + restart: unless-stopped + +volumes: + # NOTE: Change /path/to/data to a directory on your local machine + # Persistent data, stored external to the container(s) + inventree_data: + driver: local + driver_opts: + type: none + o: bind + # This directory specified where InvenTree data are stored "outside" the docker containers + device: ${INVENTREE_EXT_VOLUME:?You must specify the 'INVENTREE_EXT_VOLUME' variable in the .env file!} diff --git a/docker/nginx.conf b/docker/production/nginx.prod.conf similarity index 71% rename from docker/nginx.conf rename to docker/production/nginx.prod.conf index 271f65a89d..a412d4094a 100644 --- a/docker/nginx.conf +++ b/docker/production/nginx.prod.conf @@ -4,24 +4,29 @@ server { # Listen for connection on (internal) port 80 listen 80; - location / { - # Change 'inventree-server' to the name of the inventree server container, - # and '8000' to the INVENTREE_WEB_PORT (if not default) - proxy_pass http://inventree-server:8000; + real_ip_header proxy_protocol; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; + location / { + + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-By $server_addr:$server_port; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header CLIENT_IP $remote_addr; + + proxy_pass_request_headers on; proxy_redirect off; client_max_body_size 100M; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_buffering off; proxy_request_buffering off; + # Change 'inventree-server' to the name of the inventree server container, + # and '8000' to the INVENTREE_WEB_PORT (if not default) + proxy_pass http://inventree-server:8000; } # Redirect any requests for static files diff --git a/docker/sqlite-config.env b/docker/sqlite-config.env deleted file mode 100644 index b41660ad6e..0000000000 --- a/docker/sqlite-config.env +++ /dev/null @@ -1,10 +0,0 @@ -# InvenTree environment variables for a development setup - -# Set DEBUG to False for a production environment! -INVENTREE_DEBUG=True -INVENTREE_DEBUG_LEVEL=INFO - -# Database configuration options -# Note: The example setup is for a PostgreSQL database (change as required) -INVENTREE_DB_ENGINE=sqlite -INVENTREE_DB_NAME=/home/inventree/dev/inventree_db.sqlite3 diff --git a/requirements.txt b/requirements.txt index 2979d3e9f3..9aef6607d7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,45 +1,47 @@ # Please keep this list sorted -Django==3.2.12 # Django package -certifi # Certifi is (most likely) installed through one of the requirements above -coreapi==2.3.0 # API documentation -coverage==5.3 # Unit test coverage -coveralls==2.1.2 # Coveralls linking (for Travis) -cryptography==3.4.8 # Cryptography support -django-admin-shell==0.1.2 # Python shell for the admin interface -django-allauth==0.45.0 # SSO for external providers via OpenID -django-allauth-2fa==0.8 # MFA / 2FA -django-cleanup==5.1.0 # Manage deletion of old / unused uploaded files -django-cors-headers==3.2.0 # CORS headers extension for DRF -django-crispy-forms==1.11.2 # Form helpers -django-debug-toolbar==2.2 # Debug / profiling toolbar -django-error-report==0.2.0 # Error report viewer for the admin interface -django-filter==2.4.0 # Extended filtering options -django-formtools==2.3 # Form wizard tools -django-import-export==2.5.0 # Data import / export for admin interface -django-maintenance-mode==0.16.1 # Shut down application while reloading etc. -django-markdownify==0.8.0 # Markdown rendering -django-markdownx==3.0.1 # Markdown form fields -django-money==1.1 # Django app for currency management -django-mptt==0.11.0 # Modified Preorder Tree Traversal -django-redis>=5.0.0 -django-q==1.3.4 # Background task scheduling -django-sql-utils==0.5.0 # Advanced query annotation / aggregation -django-stdimage==5.1.1 # Advanced ImageField management -django-test-migrations==1.1.0 # Unit testing for database migrations -django-user-sessions==1.7.1 # user sessions in DB -django-weasyprint==1.0.1 # django weasyprint integration -djangorestframework==3.12.4 # DRF framework -flake8==3.8.3 # PEP checking -gunicorn>=20.1.0 # Gunicorn web server -importlib_metadata # Backport for importlib.metadata -inventree # Install the latest version of the InvenTree API python library -markdown==3.3.4 # Force particular version of markdown -pep8-naming==0.11.1 # PEP naming convention extension -pillow==9.0.1 # Image manipulation -py-moneyed==0.8.0 # Specific version requirement for py-moneyed -pygments==2.7.4 # Syntax highlighting -python-barcode[images]==0.13.1 # Barcode generator -qrcode[pil]==6.1 # QR code generator -rapidfuzz==0.7.6 # Fuzzy string matching -tablib[xls,xlsx,yaml] # Support for XLS and XLSX formats -weasyprint==52.5 # PDF generation library (Note: in the future need to update to 53) +Django==3.2.13 # Django package +bleach==4.1.0 # HTML santization +certifi # Certifi is (most likely) installed through one of the requirements above +coreapi==2.3.0 # API documentation +coverage==5.3 # Unit test coverage +coveralls==2.1.2 # Coveralls linking (for Travis) +cryptography==3.4.8 # Cryptography support +django-admin-shell==0.1.2 # Python shell for the admin interface +django-allauth==0.45.0 # SSO for external providers via OpenID +django-allauth-2fa==0.8 # MFA / 2FA +django-cleanup==5.1.0 # Manage deletion of old / unused uploaded files +django-cors-headers==3.2.0 # CORS headers extension for DRF +django-crispy-forms==1.11.2 # Form helpers +django-debug-toolbar==3.2.4 # Debug / profiling toolbar +django-error-report==0.2.0 # Error report viewer for the admin interface +django-filter==2.4.0 # Extended filtering options +django-formtools==2.3 # Form wizard tools +django-import-export==2.5.0 # Data import / export for admin interface +django-maintenance-mode==0.16.1 # Shut down application while reloading etc. +django-markdownify==0.8.0 # Markdown rendering +django-markdownx==3.0.1 # Markdown form fields +django-money==1.1 # Django app for currency management +django-mptt==0.11.0 # Modified Preorder Tree Traversal +django-redis>=5.0.0 # Redis integration +django-q==1.3.4 # Background task scheduling +django-sql-utils==0.5.0 # Advanced query annotation / aggregation +django-stdimage==5.1.1 # Advanced ImageField management +django-test-migrations==1.1.0 # Unit testing for database migrations +django-user-sessions==1.7.1 # user sessions in DB +django-weasyprint==1.0.1 # django weasyprint integration +djangorestframework==3.12.4 # DRF framework +django-xforwardedfor-middleware==2.0 # IP forwarding metadata +flake8==3.8.3 # PEP checking +gunicorn>=20.1.0 # Gunicorn web server +importlib_metadata # Backport for importlib.metadata +inventree # Install the latest version of the InvenTree API python library +markdown==3.3.4 # Force particular version of markdown +pep8-naming==0.11.1 # PEP naming convention extension +pillow==9.0.1 # Image manipulation +py-moneyed==0.8.0 # Specific version requirement for py-moneyed +pygments==2.7.4 # Syntax highlighting +python-barcode[images]==0.13.1 # Barcode generator +qrcode[pil]==6.1 # QR code generator +rapidfuzz==0.7.6 # Fuzzy string matching +tablib[xls,xlsx,yaml] # Support for XLS and XLSX formats +weasyprint==52.5 # PDF generation library (Note: in the future need to update to 53)
        {% trans "Part" %}`; + + if (details.part_detail) { + html += renderLink(details.part_detail.full_name, `/part/${details.part}/`); + } else { + html += `{% trans "Part information unavailable" %}`; + } + + html += `