From e382f2a57ec1a459086c51ce4faa9b690e7330b9 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 13 May 2021 15:46:27 +0200 Subject: [PATCH 01/19] fixing bug from refactor --- InvenTree/InvenTree/static/script/inventree/inventree.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/InvenTree/InvenTree/static/script/inventree/inventree.js b/InvenTree/InvenTree/static/script/inventree/inventree.js index 4b43b342af..1a6fdec47a 100644 --- a/InvenTree/InvenTree/static/script/inventree/inventree.js +++ b/InvenTree/InvenTree/static/script/inventree/inventree.js @@ -12,7 +12,7 @@ function attachClipboard(selector, containerselector, textElement) { return document.getElementById(textElement).textContent; } } else { - text = function() { + text = function(trigger) { var content = trigger.parentElement.parentElement.textContent;return content.trim(); } } @@ -22,7 +22,6 @@ function attachClipboard(selector, containerselector, textElement) { text: text, container: containerselector }); - console.log(cis); } @@ -81,7 +80,6 @@ function inventreeDocReady() { attachClipboard('.clip-btn'); attachClipboard('.clip-btn', 'modal-about'); // modals attachClipboard('.clip-btn-version', 'modal-about', 'about-copy-text'); // version-text - } function isFileTransfer(transfer) { From 22249206d24206c5073e7d7ba33f9c0ba0d25fd5 Mon Sep 17 00:00:00 2001 From: eeintech Date: Thu, 13 May 2021 16:06:57 -0400 Subject: [PATCH 02/19] Fixed duplicate check --- InvenTree/common/views.py | 5 +++-- .../order/templates/order/order_wizard/match_fields.html | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/InvenTree/common/views.py b/InvenTree/common/views.py index fa605c2b80..99862f5c08 100644 --- a/InvenTree/common/views.py +++ b/InvenTree/common/views.py @@ -209,6 +209,7 @@ class FileManagementFormView(MultiStepFormView): context.update({'columns': self.columns}) # Load extra context data + print(self.extra_context_data) for key, items in self.extra_context_data.items(): context.update({key: items}) @@ -449,8 +450,8 @@ class FileManagementFormView(MultiStepFormView): if guess: n = list(self.column_selections.values()).count(self.column_selections[col]) - if n > 1: - duplicates.append(col) + if n > 1 and self.column_selections[col] not in duplicates: + duplicates.append(self.column_selections[col]) # Store extra context data self.extra_context_data = { diff --git a/InvenTree/order/templates/order/order_wizard/match_fields.html b/InvenTree/order/templates/order/order_wizard/match_fields.html index 4ff7b6a963..cd81142341 100644 --- a/InvenTree/order/templates/order/order_wizard/match_fields.html +++ b/InvenTree/order/templates/order/order_wizard/match_fields.html @@ -55,7 +55,7 @@ {{ col }} {% for duplicate in duplicates %} - {% if duplicate == col.name %} + {% if duplicate == col.value %} From a64ab5956b2a1daec62fc8789ce600250882d78f Mon Sep 17 00:00:00 2001 From: eeintech Date: Thu, 13 May 2021 16:07:57 -0400 Subject: [PATCH 03/19] Removed leftover print --- InvenTree/common/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/InvenTree/common/views.py b/InvenTree/common/views.py index 99862f5c08..857b6b2c51 100644 --- a/InvenTree/common/views.py +++ b/InvenTree/common/views.py @@ -209,7 +209,6 @@ class FileManagementFormView(MultiStepFormView): context.update({'columns': self.columns}) # Load extra context data - print(self.extra_context_data) for key, items in self.extra_context_data.items(): context.update({key: items}) From bca2f4a07b95c448a21e49ebfe66b600588d8d5d Mon Sep 17 00:00:00 2001 From: Nigel Date: Thu, 15 Apr 2021 15:21:13 -0600 Subject: [PATCH 04/19] feat(sales_order): Stock Items show the PO number Stock items show the PO number that they were purchased on when being viewed in the sales order allocation modal and when viewing the sales order details. --- InvenTree/order/models.py | 3 ++ InvenTree/order/serializers.py | 2 ++ .../templates/order/sales_order_detail.html | 29 +++++++++++++++++-- InvenTree/order/views.py | 2 +- InvenTree/stock/models.py | 6 ++++ 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 5305038b4f..fb169e0536 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -826,6 +826,9 @@ class SalesOrderAllocation(models.Model): else: return "" + def get_po(self): + return self.item.purchase_order + def complete_allocation(self, user): """ Complete this allocation (called when the parent SalesOrder is marked as "shipped"): diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py index 062e8986b2..6091140313 100644 --- a/InvenTree/order/serializers.py +++ b/InvenTree/order/serializers.py @@ -235,6 +235,7 @@ class SalesOrderAllocationSerializer(InvenTreeModelSerializer): location_path = serializers.CharField(source='get_location_path') location_id = serializers.IntegerField(source='get_location') serial = serializers.CharField(source='get_serial') + po = serializers.CharField(source='get_po') quantity = serializers.FloatField() class Meta: @@ -247,6 +248,7 @@ class SalesOrderAllocationSerializer(InvenTreeModelSerializer): 'quantity', 'location_id', 'location_path', + 'po', 'item', ] diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html index 72b7d63911..a90e61bff9 100644 --- a/InvenTree/order/templates/order/sales_order_detail.html +++ b/InvenTree/order/templates/order/sales_order_detail.html @@ -87,6 +87,9 @@ function showAllocationSubTable(index, row, element) { return renderLink(row.location_path, `/stock/location/${row.location_id}/`); }, }, + { + field: 'po' + }, { field: 'buttons', title: '{% trans "Actions" %}', @@ -159,9 +162,12 @@ function showFulfilledSubTable(index, row, element) { text = `{% trans "Quantity" %}: ${row.quantity}`; } - return renderLink(text, `/stock/item/${row.pk}/`); + return renderLink(text, `/stock/item/${row.pk}/`); }, - } + }, + { + field: 'po' + }, ], }); } @@ -271,6 +277,25 @@ $("#so-lines-table").inventreeTable({ field: 'notes', title: '{% trans "Notes" %}', }, + { + field: 'po', + title: '{% trans "PO" %}', + formatter: function(value, row, index, field) { + var po_name = ""; + if (row.allocated) { + row.allocations.forEach(function(allocation) { + if (allocation.po != po_name) { + if (po_name) { + po_name = "-"; + } else { + po_name = allocation.po + } + } + }) + } + return `
` + po_name + `
`; + } + }, {% if order.status == SalesOrderStatus.PENDING %} { field: 'buttons', diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py index cf79746f0d..c8ec42d3e7 100644 --- a/InvenTree/order/views.py +++ b/InvenTree/order/views.py @@ -90,7 +90,7 @@ class SalesOrderDetail(InvenTreeRoleMixin, DetailView): """ Detail view for a SalesOrder object """ context_object_name = 'order' - queryset = SalesOrder.objects.all().prefetch_related('lines') + queryset = SalesOrder.objects.all().prefetch_related('lines__allocations__item__purchase_order') template_name = 'order/sales_order_detail.html' diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index 28123ebc41..88f8dd081c 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -1370,6 +1370,12 @@ class StockItem(MPTTModel): if self.location: s += ' @ {loc}'.format(loc=self.location.name) + if self.purchase_order: + s += " ({pre}{po})".format( + pre=helpers.getSetting("PURCHASEORDER_REFERENCE_PREFIX"), + po=self.purchase_order, + ) + return s @transaction.atomic From f76bc5a7b8661a371669c21959f65e44b252cb45 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Fri, 14 May 2021 12:38:38 +1000 Subject: [PATCH 05/19] Add debug mode and database backend as info to the "stats" dialog --- .../part/templatetags/inventree_extras.py | 24 +++++++++++++++++++ InvenTree/templates/stats.html | 13 ++++++++++ 2 files changed, 37 insertions(+) diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py index 2c588a81e5..799ad8788b 100644 --- a/InvenTree/part/templatetags/inventree_extras.py +++ b/InvenTree/part/templatetags/inventree_extras.py @@ -1,7 +1,14 @@ +# -*- coding: utf-8 -*- + """ This module provides template tags for extra functionality over and above the built-in Django tags. """ + import os +import django + +from django.utils.translation import ugettext_lazy as _ +from django.conf import settings as djangosettings from django import template from django.urls import reverse @@ -67,6 +74,23 @@ def part_allocation_count(build, part, *args, **kwargs): return InvenTree.helpers.decimal2string(build.getAllocatedQuantity(part)) +@register.simple_tag() +def inventree_in_debug_mode(*args, **kwargs): + """ Return True if the server is running in DEBUG mode """ + + return djangosettings.DEBUG + +@register.simple_tag() +def inventree_db_engine(*args, **kwargs): + """ Return the InvenTree database backend e.g. 'postgresql' """ + + db = djangosettings.DATABASES['default'] + + engine = db.get('ENGINE', _('Unknown database')) + + engine = engine.replace('django.db.backends.', '') + + return engine @register.simple_tag() def inventree_instance_name(*args, **kwargs): diff --git a/InvenTree/templates/stats.html b/InvenTree/templates/stats.html index eff9c4504f..1598d45d26 100644 --- a/InvenTree/templates/stats.html +++ b/InvenTree/templates/stats.html @@ -13,6 +13,19 @@ {% trans "Instance Name" %} {% inventree_instance_name %} + + + {% trans "Database" %} + {% inventree_db_engine %} + + {% inventree_in_debug_mode as debug_mode %} + {% if debug_mode %} + + + {% trans "Debug Mode" %} + {% trans "Server is running in debug mode" %} + + {% endif %} {% if user.is_staff %} From 7deea1ec00303d9943bc4185d6ad0a0e1e04dd25 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Fri, 14 May 2021 12:40:42 +1000 Subject: [PATCH 06/19] Style fixes --- InvenTree/part/templatetags/inventree_extras.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py index 799ad8788b..e8743028a0 100644 --- a/InvenTree/part/templatetags/inventree_extras.py +++ b/InvenTree/part/templatetags/inventree_extras.py @@ -5,7 +5,6 @@ over and above the built-in Django tags. """ import os -import django from django.utils.translation import ugettext_lazy as _ from django.conf import settings as djangosettings @@ -74,12 +73,14 @@ def part_allocation_count(build, part, *args, **kwargs): return InvenTree.helpers.decimal2string(build.getAllocatedQuantity(part)) + @register.simple_tag() def inventree_in_debug_mode(*args, **kwargs): """ Return True if the server is running in DEBUG mode """ return djangosettings.DEBUG + @register.simple_tag() def inventree_db_engine(*args, **kwargs): """ Return the InvenTree database backend e.g. 'postgresql' """ @@ -92,6 +93,7 @@ def inventree_db_engine(*args, **kwargs): return engine + @register.simple_tag() def inventree_instance_name(*args, **kwargs): """ Return the InstanceName associated with the current database """ From 30a2194fe1b121c5f64345a8c245a31614d424ba Mon Sep 17 00:00:00 2001 From: Nigel Date: Fri, 14 May 2021 13:24:13 -0600 Subject: [PATCH 07/19] feat(admin): Show the line items on the PO on the Admin Site --- InvenTree/order/admin.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/InvenTree/order/admin.py b/InvenTree/order/admin.py index 4519f8a2a9..1e7b20e5a1 100644 --- a/InvenTree/order/admin.py +++ b/InvenTree/order/admin.py @@ -13,6 +13,10 @@ from .models import SalesOrder, SalesOrderLineItem from .models import SalesOrderAllocation +class PurchaseOrderLineItemInlineAdmin(admin.StackedInline): + model = PurchaseOrderLineItem + + class PurchaseOrderAdmin(ImportExportModelAdmin): list_display = ( @@ -29,6 +33,10 @@ class PurchaseOrderAdmin(ImportExportModelAdmin): 'description', ] + inlines = [ + PurchaseOrderLineItemInlineAdmin + ] + class SalesOrderAdmin(ImportExportModelAdmin): From 16b7d6c34df29499653706b4ccea1f730fba0432 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 16 May 2021 18:18:58 +0200 Subject: [PATCH 08/19] database and debug info in version copy --- InvenTree/templates/version.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/InvenTree/templates/version.html b/InvenTree/templates/version.html index c8ec6862b6..3349bb5fb2 100644 --- a/InvenTree/templates/version.html +++ b/InvenTree/templates/version.html @@ -2,4 +2,6 @@ InvenTree-Version: {% inventree_version %} Django Version: {% django_version %} {% inventree_commit_hash as hash %}{% if hash %}Commit Hash: {{ hash }}{% endif %} -{% inventree_commit_date as commit_date %}{% if commit_date %}Commit Date: {{ commit_date }}{% endif %} \ No newline at end of file +{% inventree_commit_date as commit_date %}{% if commit_date %}Commit Date: {{ commit_date }}{% endif %} +Database: {% inventree_db_engine %} +Debug-Mode: {% inventree_in_debug_mode %} From b2a912c77020786048f5b0ed11acb0eca8f4cc03 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 16 May 2021 18:19:35 +0200 Subject: [PATCH 09/19] docker-mode switch in settings and tags --- InvenTree/InvenTree/settings.py | 5 +++++ InvenTree/part/templatetags/inventree_extras.py | 7 +++++++ docker/Dockerfile | 1 + 3 files changed, 13 insertions(+) diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 7ff90fc7c3..67a500a07a 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -87,6 +87,11 @@ DEBUG = _is_true(get_setting( CONFIG.get('debug', True) )) +DOCKER = _is_true(get_setting( + 'INVENTREE_DOCKER', + False +)) + # Configure logging settings log_level = get_setting( 'INVENTREE_LOG_LEVEL', diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py index e8743028a0..734b365447 100644 --- a/InvenTree/part/templatetags/inventree_extras.py +++ b/InvenTree/part/templatetags/inventree_extras.py @@ -81,6 +81,13 @@ def inventree_in_debug_mode(*args, **kwargs): return djangosettings.DEBUG +@register.simple_tag() +def inventree_docker_mode(*args, **kwargs): + """ Return True if the server is running as a Docker image """ + + return djangosettings.DOCKER + + @register.simple_tag() def inventree_db_engine(*args, **kwargs): """ Return the InvenTree database backend e.g. 'postgresql' """ diff --git a/docker/Dockerfile b/docker/Dockerfile index 3e0a7e1230..ea70d9f994 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -14,6 +14,7 @@ ENV INVENTREE_REPO="${repository}" ENV INVENTREE_BRANCH="${branch}" ENV INVENTREE_LOG_LEVEL="INFO" +ENV INVENTREE_DOCKER="true" # InvenTree paths ENV INVENTREE_SRC_DIR="${INVENTREE_HOME}/src" From ff9970f1cc42a823be665a6e9d1baa7437fcc22a Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 16 May 2021 18:20:06 +0200 Subject: [PATCH 10/19] docker in version copy --- InvenTree/templates/version.html | 1 + 1 file changed, 1 insertion(+) diff --git a/InvenTree/templates/version.html b/InvenTree/templates/version.html index 3349bb5fb2..b702fd85f5 100644 --- a/InvenTree/templates/version.html +++ b/InvenTree/templates/version.html @@ -5,3 +5,4 @@ Django Version: {% django_version %} {% inventree_commit_date as commit_date %}{% if commit_date %}Commit Date: {{ commit_date }}{% endif %} Database: {% inventree_db_engine %} Debug-Mode: {% inventree_in_debug_mode %} +Deployed using Docker: {% inventree_docker_mode %} \ No newline at end of file From cfa6994302ec85494cdbf8b90313ccd9ecbb5b0c Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 16 May 2021 18:20:32 +0200 Subject: [PATCH 11/19] docker-mode in stats --- InvenTree/templates/stats.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/InvenTree/templates/stats.html b/InvenTree/templates/stats.html index 1598d45d26..403030644a 100644 --- a/InvenTree/templates/stats.html +++ b/InvenTree/templates/stats.html @@ -26,6 +26,14 @@ {% trans "Server is running in debug mode" %} {% endif %} + {% inventree_docker_mode as docker_mode %} + {% if docker_mode %} + + + {% trans "Docker Mode" %} + {% trans "Server is deployed using docker" %} + + {% endif %} {% if user.is_staff %} From 64c1503fe4a75761c1cc41fce94d409c411f451a Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 17 May 2021 20:15:53 +1000 Subject: [PATCH 12/19] Disable "purchase price" field for non-purchaseable parts --- InvenTree/templates/js/modals.js | 9 +++++++++ InvenTree/templates/js/stock.js | 14 ++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/InvenTree/templates/js/modals.js b/InvenTree/templates/js/modals.js index b621caab80..f447fdce72 100644 --- a/InvenTree/templates/js/modals.js +++ b/InvenTree/templates/js/modals.js @@ -89,6 +89,15 @@ function setFieldOptions(fieldName, optionList, options={}) { } +function clearFieldOptions(fieldName) { + /** + * Clear (emtpy) the options list for a particular field + */ + + setFieldOptions(fieldName, []); +} + + function reloadFieldOptions(fieldName, options) { /* Reload the options for a given field, * using an AJAX request. diff --git a/InvenTree/templates/js/stock.js b/InvenTree/templates/js/stock.js index a0601aeb13..8f06d403ee 100644 --- a/InvenTree/templates/js/stock.js +++ b/InvenTree/templates/js/stock.js @@ -1218,6 +1218,17 @@ function createNewStockItem(options) { field: 'part', action: function(value) { + if (!value) { + // No part chosen + + clearFieldOptions('supplier_part'); + enableField('serial_numbers', false); + enableField('purchase_price_0', false); + enableField('purchase_price_1', false); + + return; + } + // Reload options for supplier part reloadFieldOptions( 'supplier_part', @@ -1243,6 +1254,9 @@ function createNewStockItem(options) { enableField('serial_numbers', response.trackable); clearField('serial_numbers'); + enableField('purchase_price_0', response.purchaseable); + enableField('purchase_price_1', response.purchaseable); + // Populate the expiry date if (response.default_expiry <= 0) { // No expiry date From 52045676281f6ff306620ecdf340ba4d5d8c3324 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 18 May 2021 19:06:41 +1000 Subject: [PATCH 13/19] Bug fix for stock item tracking API --- InvenTree/stock/api.py | 3 +++ InvenTree/templates/js/stock.js | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 376d04f643..3fc440cae4 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -1018,6 +1018,9 @@ class StockTrackingList(generics.ListAPIView): for item in data: deltas = item['deltas'] + if not deltas: + deltas = {} + # Add location detail if 'location' in deltas: try: diff --git a/InvenTree/templates/js/stock.js b/InvenTree/templates/js/stock.js index 8f06d403ee..b89cceea83 100644 --- a/InvenTree/templates/js/stock.js +++ b/InvenTree/templates/js/stock.js @@ -1017,6 +1017,11 @@ function loadStockTrackingTable(table, options) { formatter: function(details, row, index, field) { var html = ``; + if (!details) { + html += '
'; + return html; + } + // Location information if (details.location) { From a1c4662e9148eec05d24ea9c1317430f7a8035bb Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 18 May 2021 19:11:37 +1000 Subject: [PATCH 14/19] Move status messages for stock item --- InvenTree/InvenTree/static/css/inventree.css | 8 ++ .../stock/templates/stock/item_base.html | 129 +++++++++--------- InvenTree/templates/two_column.html | 2 + 3 files changed, 77 insertions(+), 62 deletions(-) diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index e3191405d9..5271a9b362 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -901,6 +901,14 @@ input[type="submit"] { color: #e00; } +.info-messages { + padding: 5px; +} + +.info-messages .alert { + padding: 5px; +} + .part-allocation { padding: 3px 10px; border: 1px solid #ccc; diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index 54d6b12e4f..da770bab48 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -14,68 +14,6 @@ {% block pre_content %} {% include 'stock/loc_link.html' with location=item.location %} - -{% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} -{% if owner_control.value == "True" %} - {% authorized_owners item.owner as owners %} - - {% if not user in owners and not user.is_superuser %} -
- {% trans "You are not in the list of owners of this item. This stock item cannot be edited." %}
-
- {% endif %} -{% endif %} - -{% if item.is_building %} -
- {% trans "This stock item is in production and cannot be edited." %}
- {% trans "Edit the stock item from the build view." %}
- - {% if item.build %} - - {{ item.build }} - - {% endif %} - -
-{% endif %} - -{% if item.hasRequiredTests and not item.passedAllRequiredTests %} -
- {% trans "This stock item has not passed all required tests" %} -
-{% endif %} - -{% for allocation in item.sales_order_allocations.all %} -
- {% object_link 'so-detail' allocation.line.order.id allocation.line.order as link %} - {% decimal allocation.quantity as qty %} - {% blocktrans %}This stock item is allocated to Sales Order {{ link }} (Quantity: {{ qty }}){% endblocktrans %} -
-{% endfor %} - -{% for allocation in item.allocations.all %} -
- {% object_link 'build-detail' allocation.build.id allocation.build %} - {% decimal allocation.quantity as qty %} - {% blocktrans %}This stock item is allocated to Build {{ link }} (Quantity: {{ qty }}){% endblocktrans %} -
-{% endfor %} - -{% if item.serialized %} -
- {% trans "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." %} -
-{% elif item.child_count > 0 %} -
- {% trans "This stock item cannot be deleted as it has child items" %} -
-{% elif item.delete_on_deplete and item.can_delete %} -
- {% trans "This stock item will be automatically deleted when all stock is depleted." %} -
-{% endif %} - {% endblock %} {% block thumbnail %} @@ -221,6 +159,73 @@ {% endblock %} +{% block below_thumbnail %} +
+ + {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} + {% if owner_control.value == "True" %} + {% authorized_owners item.owner as owners %} + + {% if not user in owners and not user.is_superuser %} +
+ {% trans "You are not in the list of owners of this item. This stock item cannot be edited." %}
+
+ {% endif %} + {% endif %} + + {% if item.is_building %} +
+ {% trans "This stock item is in production and cannot be edited." %}
+ {% trans "Edit the stock item from the build view." %}
+ + {% if item.build %} + + {{ item.build }} + + {% endif %} + +
+ {% endif %} + + {% if item.hasRequiredTests and not item.passedAllRequiredTests %} +
+ {% trans "This stock item has not passed all required tests" %} +
+ {% endif %} + + {% for allocation in item.sales_order_allocations.all %} +
+ {% object_link 'so-detail' allocation.line.order.id allocation.line.order as link %} + {% decimal allocation.quantity as qty %} + {% blocktrans %}This stock item is allocated to Sales Order {{ link }} (Quantity: {{ qty }}){% endblocktrans %} +
+ {% endfor %} + + {% for allocation in item.allocations.all %} +
+ {% object_link 'build-detail' allocation.build.id allocation.build %} + {% decimal allocation.quantity as qty %} + {% blocktrans %}This stock item is allocated to Build {{ link }} (Quantity: {{ qty }}){% endblocktrans %} +
+ {% endfor %} + + {% if item.serialized %} +
+ {% trans "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." %} +
+ {% elif item.child_count > 0 %} +
+ {% trans "This stock item cannot be deleted as it has child items" %} +
+ {% elif item.delete_on_deplete and item.can_delete %} +
+ {% trans "This stock item will be automatically deleted when all stock is depleted." %} +
+ {% endif %} + +
+{% endblock %} + {% block page_details %}

{% trans "Stock Item Details" %}

diff --git a/InvenTree/templates/two_column.html b/InvenTree/templates/two_column.html index ce91dcfffb..1eb1b5388e 100644 --- a/InvenTree/templates/two_column.html +++ b/InvenTree/templates/two_column.html @@ -27,6 +27,8 @@ {% endblock %} + {% block below_thumbnail %} + {% endblock %}
{% block page_details %} From 7cd345aeb570dead59f7c330be38c758ec7ed95b Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 18 May 2021 19:19:43 +1000 Subject: [PATCH 15/19] Change location of 'banner' messages - Place them inside the main panel - Generally underneath the thumbnail --- InvenTree/InvenTree/static/css/inventree.css | 1 + .../build/templates/build/build_base.html | 78 +++++++++++-------- .../templates/order/sales_order_base.html | 14 ++-- InvenTree/part/templates/part/part_base.html | 16 ++-- 4 files changed, 62 insertions(+), 47 deletions(-) diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index 5271a9b362..0aab04f941 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -907,6 +907,7 @@ input[type="submit"] { .info-messages .alert { padding: 5px; + margin-bottom: 10px; } .part-allocation { diff --git a/InvenTree/build/templates/build/build_base.html b/InvenTree/build/templates/build/build_base.html index 177fad8d6c..2376daf0cf 100644 --- a/InvenTree/build/templates/build/build_base.html +++ b/InvenTree/build/templates/build/build_base.html @@ -9,44 +9,54 @@ {% inventree_title %} | {% trans "Build Order" %} - {{ build }} {% endblock %} +{% block below_thumbnail %} + +
+ {% if build.sales_order %} +
+ {% object_link 'so-detail' build.sales_order.id build.sales_order as link %} + {% blocktrans %}This Build Order is allocated to Sales Order {{link}}{% endblocktrans %} +
+ {% endif %} + + {% if build.parent %} +
+ {% object_link 'build-detail' build.parent.id build.parent as link %} + {% blocktrans %}This Build Order is a child of Build Order {{link}}{% endblocktrans %} +
+ {% endif %} + + {% if build.active %} + {% if build.can_complete %} +
+ {% trans "Build Order is ready to mark as completed" %} +
+ {% endif %} + {% if build.incomplete_count > 0 %} +
+ {% trans "Build Order cannot be completed as outstanding outputs remain" %} +
+ {% endif %} + {% if build.completed < build.quantity %} +
+ {% trans "Required build quantity has not yet been completed" %} +
+ {% endif %} + {% if not build.areUntrackedPartsFullyAllocated %} +
+ {% trans "Stock has not been fully allocated to this Build Order" %} +
+ {% endif %} + {% endif %} +
+{% endblock %} + {% block header_pre_content %} -{% if build.sales_order %} -
- {% object_link 'so-detail' build.sales_order.id build.sales_order as link %} - {% blocktrans %}This Build Order is allocated to Sales Order {{link}}{% endblocktrans %} -
-{% endif %} -{% if build.parent %} -
- {% object_link 'build-detail' build.parent.id build.parent as link %} - {% blocktrans %}This Build Order is a child of Build Order {{link}}{% endblocktrans %} -
-{% endif %} + {% endblock %} {% block header_post_content %} -{% if build.active %} -{% if build.can_complete %} -
- {% trans "Build Order is ready to mark as completed" %} -
-{% endif %} -{% if build.incomplete_count > 0 %} -
- {% trans "Build Order cannot be completed as outstanding outputs remain" %} -
-{% endif %} -{% if build.completed < build.quantity %} -
- {% trans "Required build quantity has not yet been completed" %} -
-{% endif %} -{% if not build.areUntrackedPartsFullyAllocated %} -
- {% trans "Stock has not been fully allocated to this Build Order" %} -
-{% endif %} -{% endif %} + {% endblock %} {% block thumbnail %} diff --git a/InvenTree/order/templates/order/sales_order_base.html b/InvenTree/order/templates/order/sales_order_base.html index 45bcc76244..d3f4ba74a2 100644 --- a/InvenTree/order/templates/order/sales_order_base.html +++ b/InvenTree/order/templates/order/sales_order_base.html @@ -9,13 +9,15 @@ {% inventree_title %} | {% trans "Sales Order" %} {% endblock %} -{% block pre_content %} -{% if order.status == SalesOrderStatus.PENDING and not order.is_fully_allocated %} -
- {% trans "This SalesOrder has not been fully allocated" %} +{% block below_thumbnail %} +
+ {% if order.status == SalesOrderStatus.PENDING and not order.is_fully_allocated %} +
+ {% trans "This Sales Order has not been fully allocated" %} +
+ {% endif %}
-{% endif %} -{% endblock %} + {% endblock %} {% block thumbnail %} -{% if part.variant_of %} -
- {% object_link 'part-variants' part.variant_of.id part.variant_of.full_name as link %} - {% blocktrans %}This part is a variant of {{link}}{% endblocktrans %} -
-{% endif %} -
{% include "part/part_thumb.html" %} @@ -107,6 +100,15 @@
+ +
+ {% if part.variant_of %} +
+ {% object_link 'part-variants' part.variant_of.id part.variant_of.full_name as link %} + {% blocktrans %}This part is a variant of {{link}}{% endblocktrans %} +
+ {% endif %} +
From 013d42de7ade2fe5e405f5c3a29511c3f08e9760 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 18 May 2021 19:20:24 +1000 Subject: [PATCH 16/19] L10 merge (#1595) * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * Adds a commit message * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * updated translation base * New Crowdin updates (#1551) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * New Crowdin updates (#1552) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * updated translation base * New Crowdin updates (#1568) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * New Crowdin updates (#1570) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- InvenTree/locale/de/LC_MESSAGES/django.po | 1946 +++++++++------- InvenTree/locale/en/LC_MESSAGES/django.po | 1781 +++++++------- InvenTree/locale/es/LC_MESSAGES/django.po | 1923 ++++++++------- InvenTree/locale/fr/LC_MESSAGES/django.po | 1823 ++++++++------- InvenTree/locale/it/LC_MESSAGES/django.po | 1797 +++++++------- InvenTree/locale/ja/LC_MESSAGES/django.po | 1797 +++++++------- InvenTree/locale/pl/LC_MESSAGES/django.po | 2581 +++++++++++---------- InvenTree/locale/ru/LC_MESSAGES/django.po | 1797 +++++++------- InvenTree/locale/tr/LC_MESSAGES/django.po | 1931 ++++++++------- InvenTree/locale/zh/LC_MESSAGES/django.po | 1837 ++++++++------- crowdin.yml | 3 + 11 files changed, 10665 insertions(+), 8551 deletions(-) diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index d8342de36c..300a639a69 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 10:02\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: de\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -72,8 +77,8 @@ msgstr "Kategorie auswählen" msgid "Duplicate serial: {n}" msgstr "Doppelte Seriennummer: {n}" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -101,7 +106,7 @@ msgstr "Keine Seriennummern gefunden" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "Anhang" @@ -117,9 +122,9 @@ msgstr "Kommentar" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "Benutzer" @@ -127,8 +132,8 @@ msgstr "Benutzer" msgid "upload date" msgstr "Hochladedatum" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "Name" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "Name" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "Beschreibung" @@ -166,23 +171,23 @@ msgstr "Beschreibung (optional)" msgid "parent" msgstr "Eltern" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "Türkisch" @@ -198,60 +203,136 @@ msgstr "E-Mail-Backend nicht konfiguriert" msgid "InvenTree system health checks failed" msgstr "InvenTree Status-Überprüfung fehlgeschlagen" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "Ausstehend" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "Platziert" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "Fertig" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "Storniert" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "Verloren" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "Zurückgegeben" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "Versendet" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "erfordert Eingriff" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "Beschädigt" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "Zerstört" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "Zurückgewiesen" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "Alter Lagerbestands-Tracking-Eintrag" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "Lagerbestand erstellt" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "Lagerbestand bearbeitet" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "Seriennummer hinzugefügt" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "Lagerbestand gezählt" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "Lagerbestand manuell hinzugefügt" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "Lagerbestand manuell entfernt" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "Standort geändert" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "In Baugruppe installiert" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "Aus Baugruppe entfernt" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "Komponente installiert" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "Komponente entfernt" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "Vom übergeordneten Element geteilt" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "Unterobjekt geteilt" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "Zum Kunden geschickt" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "Rücksendung vom Kunden" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "Endprodukt erstellt" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "Endprodukt fertiggestellt" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "Gegen Bestellung empfangen" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "in Arbeit" @@ -270,8 +351,9 @@ msgstr "IPN muss zu Regex-Muster {pat} passen" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" -msgstr "Referenz muss zu Regex-Muster passen" +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "Referenz muss zu Regex-Muster {pattern} passen" #: InvenTree/validators.py:113 #, python-brace-format @@ -376,35 +458,35 @@ msgstr "Zieldatum" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "Anzahl" @@ -416,7 +498,7 @@ msgstr "Anzahl der zu bauenden Teile" msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "Seriennummer" @@ -446,11 +528,11 @@ msgstr "Bauauftrag als vollständig markieren" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "Lagerort" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "Lagerort der Endprodukte" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "Status" @@ -517,9 +600,9 @@ msgstr "Bauaufträge" msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "Teil" @@ -616,7 +699,7 @@ msgstr "Bauauftrags-Status" msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "Losnummer" @@ -629,7 +712,7 @@ msgstr "Losnummer für dieses Endprodukt" msgid "Creation Date" msgstr "Erstelldatum" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" @@ -667,28 +750,28 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "Externer Link" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "Link zu einer externen URL" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "Endprodukt bereits hergstellt" msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:838 -msgid "Completed build output" -msgstr "Endprodukt fertigstellen" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in eindeutig sein" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist" + +#: build/models.py:1165 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden" -#: build/models.py:1165 +#: build/models.py:1169 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "Zu viele BestandsObjekt zugewiesen" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "Bauauftrag" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "Bauauftrag starten um Teile zuzuweisen" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "BestandsObjekt" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "Quell-BestandsObjekt" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "Ziel-BestandsObjekt" @@ -812,29 +891,29 @@ msgstr "Benötigte Teile bestellen" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "Teile bestellen" #: build/templates/build/allocate.html:36 msgid "Untracked stock has been fully allocated for this Build Order" -msgstr "" +msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag vollständig zugewiesen" #: build/templates/build/allocate.html:40 msgid "Untracked stock has not been fully allocated for this Build Order" -msgstr "" +msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: build/templates/build/allocate.html:47 msgid "This Build Order does not have any associated untracked BOM items" -msgstr "" +msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "Seriennummer" @@ -897,7 +976,7 @@ msgstr "Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "Admin" @@ -908,8 +987,8 @@ msgstr "Admin" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "Überfällig" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "Fortschritt" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "Auftrag" @@ -974,7 +1053,7 @@ msgstr "Aufgegeben von" #: build/templates/build/build_base.html:207 msgid "Incomplete Outputs" -msgstr "Unvollständige Endprodukte" +msgstr "Unfertige Endprodukte" #: build/templates/build/build_base.html:208 msgid "Build Order cannot be completed as incomplete build outputs remain" @@ -1112,11 +1191,11 @@ msgid "Destination location not specified" msgstr "Ziel-Lagerort nicht angegeben" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" -msgstr "Los" +msgstr "Losnummer" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 @@ -1168,6 +1247,7 @@ msgstr "Bauauftrag-details" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "Details" @@ -1202,7 +1282,8 @@ msgstr "Bermerkungen bearbeiten" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "Speichern" @@ -1229,9 +1310,9 @@ msgstr "Endprodukt anlegen" #: build/views.py:168 msgid "Maximum output quantity is " -msgstr "" +msgstr "Maximale Endproduktmenge ist " -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" @@ -1348,372 +1429,405 @@ msgstr "Bauobjekt aktualisiert" msgid "Add Build Order Attachment" msgstr "Bauauftrags-Anhang hinzufügen" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "Anhang hinzugefügt" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "Anhang bearbeiten" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "Anhang aktualisiert" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "Anhang löschen" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "Anhang gelöscht" -#: common/models.py:56 +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "Dateiformat nicht unterstützt: {ext.upper()}" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "Fehler beim Lesen der Datei (ungültiges Format)" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "Fehler beim Lesen der Datei (falsche Größe)" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "Datei" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "Datei zum Hochladen auswählen" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "{name.title()} Datei" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "{name} Datei zum Hochladen auswählen" + +#: common/models.py:58 msgid "InvenTree Instance Name" msgstr "InvenTree Instanzname" -#: common/models.py:58 +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "Firmenname" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "Standard-Währung" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "Standard-Währung" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "Barcode-Scanner Unterstützung" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "Vorlage" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "Komponente" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" -msgstr "nachverfolgbar" +msgstr "Nachverfolgbar" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "Test-Berichte" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "Tage" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "Gruppieren nach Teil" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "Bauauftrag-Referenz Präfix" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "Präfix für Bauauftrag-Referenz" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "Bauauftrag-Referenz RegEx" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "Auftrags-Referenz Präfix" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "Präfix für Auftrags-Referenz" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "Bestellungs-Referenz Präfix" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "Präfix für Bestellungs-Referenz" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "Preis" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "Standard" @@ -1721,24 +1835,42 @@ msgstr "Standard" msgid "Current value" msgstr "Aktueller Wert" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "Einstellungen ändern" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "Angegebener Wert nicht erlaubt" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "Angegebener Wert muss ein Wahrheitswert sein" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "Datei hochgeladen" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "Übereinstimmende Felder" + +#: common/views.py:186 +msgid "Match Items" +msgstr "Positionen zuordnen" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "Felder zuteilen fehlgeschlagen" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "Währung" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" @@ -1758,216 +1890,216 @@ msgstr "Einzelpreis" msgid "Single quantity price" msgstr "Preis für eine Einheit" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "MPN" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "Firmenbeschreibung" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "Firmenbeschreibung" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "Website" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "Firmenwebsite Adresse/URL" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "Adresse" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "Firmenadresse" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "Kontakt-Tel." -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "Kontakt-Telefon" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "Email" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "Kontakt-Email" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "Kontakt" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "Anlaufstelle" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "Link" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "Bild" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "ist Kunde" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "Verkaufen Sie Teile an diese Firma?" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "ist Zulieferer" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "Kaufen Sie Teile von dieser Firma?" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "ist Hersteller" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "Produziert diese Firma Teile?" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "Teil auswählen" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "Hersteller" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "Externe URL für das Herstellerteil" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "SKU (Lagerbestandseinheit)" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" -msgstr "Hersteller-Teil" +msgstr "Herstellerteil" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Notiz" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "Verpackungen" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "Vielfache" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "Mehrere bestellen" @@ -1993,7 +2125,7 @@ msgstr "Neues Bild hochladen" msgid "Download image from URL" msgstr "Bild von URL herunterladen" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "Bestellung anlegen" @@ -2022,11 +2154,9 @@ msgstr "Sind Sie sicher, dass Sie die Firma '%(name)s' löschen wollen?" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." -msgstr "" -"Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n" +msgstr "Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n" "Wenn dieser Lieferant gelöscht wird, werden auch diese Zulieferer-Teile gelöscht." #: company/templates/company/detail.html:21 @@ -2041,10 +2171,11 @@ msgstr "Keine Website angegeben" msgid "Uses default currency" msgstr "verwendet Standard-Währung" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "Kunde" @@ -2090,7 +2221,7 @@ msgstr "Teile löschen" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "Neues Teil" @@ -2126,30 +2257,30 @@ msgstr "Exportieren" #: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" -msgstr "Zulieferer-Teile" +msgstr "Zuliefererteile" #: company/templates/company/detail_supplier_part.html:21 #: order/templates/order/order_wizard/select_parts.html:42 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" -msgstr "Neues Zulieferer-Teil anlegen" +msgstr "Neues Zuliefererteil anlegen" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" -msgstr "Neues Zulieferer-Teil" +msgstr "Neues Zuliefererteil" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "Neuer Zulieferer" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "Neuen Zulieferer anlegen" @@ -2207,7 +2338,7 @@ msgstr "Herstellerteil-Bestand" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2251,7 +2382,7 @@ msgstr "Hergestellte Teile" #: company/templates/company/navbar.html:29 #: company/templates/company/navbar.html:32 msgid "Supplied Parts" -msgstr "Zulieferer-Teile" +msgstr "Zuliefererteile" #: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 #: stock/templates/stock/location.html:107 @@ -2260,9 +2391,9 @@ msgstr "Zulieferer-Teile" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" -msgstr "BestandsObjekte" +msgstr "Teilbestand" #: company/templates/company/navbar.html:47 #: company/templates/company/navbar.html:56 @@ -2315,27 +2446,27 @@ msgid "New Sales Order" msgstr "Neuer Auftrag" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" -msgstr "Zulieferer-Teil" +msgstr "Zuliefererteil" #: company/templates/company/supplier_part_base.html:40 msgid "Edit supplier part" -msgstr "Zulieferer-Teil bearbeiten" +msgstr "Zuliefererteil bearbeiten" #: company/templates/company/supplier_part_base.html:44 msgid "Delete supplier part" -msgstr "Zulieferer-Teil entfernen" +msgstr "Zuliefererteil entfernen" #: company/templates/company/supplier_part_base.html:56 #: company/templates/company/supplier_part_detail.html:10 msgid "Supplier Part Details" -msgstr "Zulieferer-Teildetails" +msgstr "Zuliefererteil Details" #: company/templates/company/supplier_part_delete.html:5 msgid "Are you sure you want to delete the following Supplier Parts?" -msgstr "Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?" +msgstr "Sind Sie sicher, dass sie die folgenden Zuliefererteile löschen möchten?" #: company/templates/company/supplier_part_navbar.html:12 #: company/templates/company/supplier_part_stock.html:10 @@ -2349,7 +2480,7 @@ msgstr "Zulieferer-Bestellungen" #: company/templates/company/supplier_part_navbar.html:26 msgid "Supplier Part Pricing" -msgstr "Zulieferer-Teil Bepreisung" +msgstr "Zuliefererteil Bepreisung" #: company/templates/company/supplier_part_navbar.html:29 msgid "Pricing" @@ -2365,7 +2496,7 @@ msgid "Pricing Information" msgstr "Preisinformationen ansehen" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -2395,7 +2526,7 @@ msgstr "Hersteller" msgid "Customers" msgstr "Kunden" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "Neuer Kunde" @@ -2415,6 +2546,11 @@ msgstr "Bild herunterladen" msgid "Image size exceeds maximum allowable size for download" msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "Ungültige Antwort {code}" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" @@ -2435,7 +2571,7 @@ msgstr "Firma bearbeiten" msgid "Edited company information" msgstr "Firmeninformation bearbeitet" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "Neuen Kunden anlegen" @@ -2453,7 +2589,7 @@ msgstr "Firma gelöscht" #: company/views.py:357 msgid "Edit Manufacturer Part" -msgstr "Hergestellte Teile ändern" +msgstr "Herstellerteil ändern" #: company/views.py:366 msgid "Create New Manufacturer Part" @@ -2465,25 +2601,25 @@ msgstr "Herstellerteil löschen" #: company/views.py:528 msgid "Edit Supplier Part" -msgstr "Zulieferer-Teil bearbeiten" +msgstr "Zuliefererteil bearbeiten" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" -msgstr "Neues Zulieferer-Teil anlegen" +msgstr "Neues Zuliefererteil anlegen" #: company/views.py:722 msgid "Delete Supplier Part" -msgstr "Zulieferer-Teil entfernen" +msgstr "Zuliefererteil entfernen" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "neue Preisstaffel hinzufügt" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "Preisstaffel löschen" @@ -2491,51 +2627,59 @@ msgstr "Preisstaffel löschen" msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "Label Name" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "Label Beschreibung" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "Label" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "Label-Vorlage-Datei" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "Aktiviert" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "Label-Vorlage ist aktiviert" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "Breite [mm]" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "Label-Breite in mm" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "Höhe [mm]" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "Label-Höhe in mm" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "Dateinamen-Muster" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "Muster für die Erstellung von Label-Dateinamen" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "Filter" @@ -2573,15 +2717,15 @@ msgstr "Zieldatum für Auftrags-Lieferung." msgid "Enter sales order number" msgstr "Auftrag-Nummer eingeben" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "Zieldatum für Auftrags-Fertigstellung." -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "Seriennummern für BestandsObjekt eingeben" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "Menge der BestandsObjekt eingeben" @@ -2609,7 +2753,7 @@ msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind" msgid "Order notes" msgstr "Bestell-Notizen" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "Bestellungs-Status" @@ -2650,8 +2794,8 @@ msgstr "Geplantes Lieferdatum für Auftrag." msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -2659,132 +2803,134 @@ msgstr "Anzahl muss größer Null sein" msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden" -#: order/models.py:348 -#, fuzzy -#| msgid "Quantity must be integer" +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: order/models.py:350 -#, fuzzy -#| msgid "Quantity must be positive" +#: order/models.py:352 msgid "Quantity must be a positive number" -msgstr "Anzahl muss positiv sein" +msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:369 -msgid "Received items" -msgstr "Elemente empfangen" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "Versand von" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "Bestellung kann nicht versendet werden weil er nicht anhängig ist" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "Bestellung" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "Bestellung" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" -msgstr "Zulieferer-Teil" +msgstr "Zuliefererteil" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "Empfangen" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "Verkaufspreis" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "Stückverkaufspreis" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "BestandsObjekt wurde nicht zugewiesen" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "Position" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "Position" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "BestandsObjekt für Zuordnung auswählen" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" @@ -2836,7 +2982,7 @@ msgstr "Aufgegeben" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "Neuer Lagerort" @@ -2847,10 +2993,8 @@ msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" #: order/templates/order/order_cancel.html:8 -#, fuzzy -#| msgid "Cancelling this order means that the order will no longer be editable." msgid "Cancelling this order means that the order and line items will no longer be editable." -msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." +msgstr "Abbruch dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind." #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" @@ -2861,10 +3005,8 @@ msgid "This order has line items which have not been marked as received." msgstr "Diese Bestellung enthält Positionen, die nicht als empfangen markiert wurden." #: order/templates/order/order_complete.html:11 -#, fuzzy -#| msgid "Cancelling this order means that the order will no longer be editable." msgid "Completing this order means that the order and line items will no longer be editable." -msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." +msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind." #: order/templates/order/order_issue.html:8 msgid "After placing this purchase order, line items will no longer be editable." @@ -2874,6 +3016,75 @@ msgstr "Nachdem diese Bestellung plaziert ist können die Positionen nicht läng msgid "Order Notes" msgstr "Notizen zur Bestellung" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "Es fehlt eine Auswahl für die folgende benötigte Spalte" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "Doppelte Auswahlen gefunden, siehe unten. Reparieren und erneut versuchen." + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "Vorheriger Schritt" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "Auswahl übertragen" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "Datei-Felder" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "Spalte entfernen" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "Auswahl duplizieren" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "Zeile entfernen" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "Fehler in den übermittelten Daten" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "Zeile" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "Zulieferer-Teil auswählen" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "Datei zur Bestellung hochladen" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "Schritt %(step)s von %(count)s" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen werden." + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "Schritt 1 von 2 - Zulieferer auswählen" @@ -2918,16 +3129,14 @@ msgid "Select Purchase Order" msgstr "Bestellung auswählen" #: order/templates/order/order_wizard/select_pos.html:45 -#, fuzzy, python-format -#| msgid "Create new purchase order" +#, python-format msgid "Create new purchase order for %(name)s" -msgstr "Neue Bestellung anlegen" +msgstr "Neue Bestellung für %(name)s anlegen" #: order/templates/order/order_wizard/select_pos.html:68 -#, fuzzy, python-format -#| msgid "Select a purchase order for" +#, python-format msgid "Select a purchase order for %(name)s" -msgstr "Bestellung auswählen für" +msgstr "Bestellung für %(name)s auswählen" #: order/templates/order/po_attachments.html:12 #: order/templates/order/po_navbar.html:23 @@ -2948,8 +3157,8 @@ msgid "Purchase Order Items" msgstr "Bestellungs-Positionen" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -2958,11 +3167,12 @@ msgid "No line items found" msgstr "Keine Positionen gefunden" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "Stück-Preis" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "Position bearbeiten" @@ -2992,7 +3202,7 @@ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "Teile" @@ -3008,7 +3218,7 @@ msgstr "Bestellnummer" #: order/templates/order/receive_parts.html:21 #: part/templates/part/part_base.html:129 templates/js/part.js:414 msgid "On Order" -msgstr "bestellt" +msgstr "Bestellt" #: order/templates/order/receive_parts.html:23 msgid "Receive" @@ -3054,59 +3264,72 @@ msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar i msgid "Sales Order Items" msgstr "Auftrags-Positionen" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "Aktionen" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "ID" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "Zugeordnet" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "Erledigt" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "PO" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "Seriennummern zuweisen" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "Lagerbestand zuweisen" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "Lagerbestand kaufen" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "Lagerbestand bauen" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "Preis berechnen" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "Position löschen " +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "Stückpreis aktualisieren" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "Auftrags-Positionen" @@ -3148,164 +3371,189 @@ msgstr "Auftrags-Anhänge" msgid "Are you sure you wish to delete this line item?" msgstr "Sind Sie sicher, dass Sie diese Position löschen möchten?" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "Bestellungs-Anhang hinzufügen" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "Auftrags-Anhang hinzufügen" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "Auftrag anlegen" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "Bestellung bearbeiten" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "Auftrag bearbeiten" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "Bestellung stornieren" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "Bestellstornierung bestätigen" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "Bestellung kann nicht verworfen werden" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "Auftrag stornieren" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "Bestellung aufgeben" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "Bestellungstätigung bestätigen" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" -msgstr "Bestellung erstellt" +msgstr "Bestellung plaziert" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "Auftrag fertigstellen" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "Fertigstellung bestätigen" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "Bestellung als vollständig markieren" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "Versenden" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "Versand bestätigen" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "Versand fehlgeschlagen" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "Zuliefererteile zuordnen" + +#: order/views.py:798 msgid "Receive Parts" msgstr "Teile empfangen" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "Anzahl empfangener Positionen" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "Kein Ziel gesetzt" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "Fehler beim Konvertieren zu Zahl" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "Anzahl kleiner null empfangen" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "Keine Zeilen angegeben" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "{n} Teile bestellt" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" -msgstr "Zulieferer-Teil muss ausgewählt werden" +msgstr "Zuliefererteil muss ausgewählt werden" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "Zulieferer muss zu Teil und Bestellung passen" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "Position löschen" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "Position gelöscht" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "Seriennummern zuweisen" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "{n} Positionen zugeordnet" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "Position auswählen" -#: order/views.py:1410 -msgid "No matching item for serial" -msgstr "Kein passends Teil für Seriennummer gefunden" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "Kein passends Teil für Seriennummer {serial} gefunden" -#: order/views.py:1420 -msgid "is not in stock" -msgstr "ist nicht auf Lager" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" +msgstr "{serial} ist nicht auf Lager" -#: order/views.py:1428 -msgid "already allocated to an order" -msgstr "bereits einem Auftrag zugeordnet" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" +msgstr "{serial} bereits einem Auftrag zugeordnet" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "Lagerbestand dem Auftrag zuweisen" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "Zuordnung bearbeiten" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "Zuordnung entfernen" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "Auftrag nicht gefunden" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "Preis nicht gefunden" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "Stückpreis für {part} auf {price} aktualisiert" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3384,7 +3632,7 @@ msgstr "Zulieferer einschließen" msgid "Include part supplier data in exported BOM" msgstr "Zulieferer-Daten in Stückliste-Export einschließen" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "Ausgangsteil" @@ -3460,7 +3708,7 @@ msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen" msgid "Add parameter template to all categories" msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "Untergeordnetes Teil" @@ -3480,14 +3728,14 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "Teil-Kategorien" @@ -3550,7 +3798,7 @@ msgstr "Schlüsselwörter" msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "Kategorie" @@ -3587,7 +3835,7 @@ msgstr "Standard Zulieferer" #: part/models.py:808 msgid "Default supplier part" -msgstr "Standard Zulieferer-Teil" +msgstr "Standard Zuliefererteil" #: part/models.py:815 msgid "Default Expiry" @@ -3605,7 +3853,7 @@ msgstr "Minimaler Lagerbestand" msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Lagerbestand" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "Einheiten" @@ -3635,8 +3883,8 @@ msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "Aktiv" @@ -3672,167 +3920,171 @@ msgstr "BOM Kontrolldatum" msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1949 +#: part/models.py:1616 +msgid "Sell multiple" +msgstr "Mehrere verkaufen" + +#: part/models.py:1987 msgid "Test templates can only be created for trackable parts" msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden" -#: part/models.py:1966 +#: part/models.py:2004 msgid "Test with this name already exists for this part" msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil" -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:1987 +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" -msgstr "benötigt" +msgstr "Benötigt" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" -msgstr "verpflichtender Wert" +msgstr "Erfordert Wert" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" -msgstr "Parameter Einheit" +msgstr "Einheit des Parameters" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "Wert" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "Optional" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" -msgstr "Zulieferer-Teil muss festgelegt sein" +msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "Stücklisten-Position" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?" @@ -3917,7 +4169,7 @@ msgid "All selected BOM items will be deleted" msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "Neues Teil anlegen" @@ -3935,51 +4187,18 @@ msgstr "Stückliste hochladen" msgid "Step 2 - Select Fields" msgstr "Schritt 2 - Felder auswählen" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "Es fehlt eine Auswahl für die folgende benötigte Spalte" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "Auswahl übertragen" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "Datei-Felder" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "Spalte entfernen" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "Übereinstimmende Felder" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "Spalte doppelt ausgewählt" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "Zeile entfernen" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "Schritt 3 - Teile auswählen" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "Fehler in den übermittelten Daten" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "Stückliste abschicken" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "Zeile" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -4010,10 +4229,6 @@ msgstr "Vorlage für Stückliste" msgid "Each part must already exist in the database" msgstr "Jedes Teil muss bereits in der Datenbank bestehen" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "Datei hochgeladen" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4025,7 +4240,7 @@ msgstr "Damit wird jede Zeile der Stückliste kontrolliert" #: part/templates/part/build.html:10 msgid "Part Builds" -msgstr "gefertigte Teile" +msgstr "Gefertigte Teile" #: part/templates/part/build.html:18 msgid "Start New Build" @@ -4035,7 +4250,7 @@ msgstr "Neuen Bauauftrag beginnen" msgid "All parts" msgstr "Alle Teile" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "Teil-Kategorie anlegen" @@ -4103,7 +4318,7 @@ msgstr "Teil-Kategorie anlegen" msgid "Create new Part Category" msgstr "Neue Teil-Kategorie anlegen" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "Neuen Lagerort erstellen" @@ -4136,7 +4351,7 @@ msgstr "Diese Kategorie enthält %(count)s Teile" #: part/templates/part/category_delete.html:27 #, python-format msgid "If this category is deleted, these parts will be moved to the parent category %(path)s" -msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kat. %(path)s verschoben" +msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kategorie %(path)s verschoben" #: part/templates/part/category_delete.html:29 msgid "If this category is deleted, these parts will be moved to the top-level category Teile" @@ -4179,7 +4394,7 @@ msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)" #: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 msgid "Part Details" -msgstr "Teile-Details" +msgstr "Teil Details" #: part/templates/part/detail.html:42 msgid "Latest Serial Number" @@ -4294,22 +4509,18 @@ msgstr "Benutzt in" msgid "Sales Price Information" msgstr "Preisinformationen ansehen" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "VK-Preis" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "Teil Test-Vorlagen" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "Tests" #: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116 #: part/templates/part/related.html:10 msgid "Related Parts" -msgstr "verknüpfte Teile" +msgstr "Verknüpfte Teile" #: part/templates/part/navbar.html:125 part/templates/part/notes.html:12 msgid "Part Notes" @@ -4327,7 +4538,7 @@ msgstr "Neuer Parameter" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "Wert" @@ -4363,19 +4574,19 @@ msgid "Star this part" msgstr "Teil favorisieren" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "Barcode Aktionen" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-Code anzeigen" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "Label drucken" @@ -4404,7 +4615,7 @@ msgstr "Teil bearbeiten" msgid "Delete part" msgstr "Teil löschen" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "Auf Lager" @@ -4418,7 +4629,7 @@ msgstr "Benötigt für Aufträge" #: part/templates/part/part_base.html:150 msgid "Allocated to Orders" -msgstr "zu Bauaufträgen zugeordnet" +msgstr "Zu Bauaufträgen zugeordnet" #: part/templates/part/part_base.html:165 templates/js/bom.js:300 msgid "Can Build" @@ -4432,42 +4643,39 @@ msgstr "Im Bau" msgid "Calculate" msgstr "Berechnen" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "Preisinformationen für:
%(part)s." - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "Zulieferer-Preise" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "Stückpreis" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "Gesamtkosten" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "Stücklistenpreise" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "Keine Stücklisten-Preise verfügbar" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "Keine Preise für dieses Teil verfügbar" @@ -4511,11 +4719,11 @@ msgstr "Es gibt %(count)s einzigartige Teile, die für '%(full_name)s' verfolgt #: part/templates/part/related.html:18 msgid "Add Related" -msgstr "Zugehöriges Teil hinzufügen" +msgstr "Verknüpftes Teil hinzufügen" #: part/templates/part/sale_prices.html:10 msgid "Sell Price Information" -msgstr "VK-Preis Informationen" +msgstr "Verkaufspreis Informationen" #: part/templates/part/sales_orders.html:18 msgid "New sales order" @@ -4576,6 +4784,10 @@ msgstr "Neue Variante anlegen" msgid "New Variant" msgstr "neue Variante anlegen" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "Unbekannte Datenbank" + #: part/views.py:89 msgid "Add Related Part" msgstr "verknüpftes Teil hinzufügen" @@ -4725,63 +4937,63 @@ msgstr "Teil wurde gelöscht" msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "Teilparameter anlegen" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "Teilparameter bearbeiten" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "Teilparameter löschen" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "Teil-Kategorie wurde gelöscht" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "Stücklisten-Position bearbeiten" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "löschen von Stücklisten-Position bestätigen" @@ -4883,17 +5095,17 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "Ergebnis" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "Datum" @@ -4905,22 +5117,22 @@ msgstr "bestanden" msgid "Fail" msgstr "fehlgeschlagen" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "Bestand für {n} Objekte geändert" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "{n} Teile nach {loc} bewegt" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "Ablaufdatum" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "Ablaufdatum für dieses BestandsObjekt" @@ -4948,8 +5160,8 @@ msgstr " Transaktionsnotizen hinzufügen (optional)" msgid "Select test report template" msgstr "Test Bericht Vorlage auswählen" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "Unter-Lagerorte einschließen" @@ -5005,243 +5217,187 @@ msgstr "Standard-Lagerort ändern" msgid "Set the destination as the default location for selected parts" msgstr "Setze das Ziel als Standard-Lagerort für ausgewählte Teile" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "Neues BestandsObjekt erstellt" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "Ein BestandsObjekt mit dieser Seriennummer existiert bereits" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "Teile-Typ ('{pf}') muss {pe} sein" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "Eltern-BestandsObjekt" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" -msgstr "Passendes Zulieferer-Teil für dieses BestandsObjekt auswählen" +msgstr "Passendes Zuliefererteil für dieses BestandsObjekt auswählen" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "Die Verpackung dieses BestandsObjekt ist gelagert in" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "verbaut in" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "Losnummer für dieses BestandsObjekt" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "Bauauftrag für dieses BestandsObjekt" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "Bestellung für dieses BestandsObjekt" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "BestandsObjekt-Notizen" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "zugewiesen zum Kunden" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "manuell zugewiesen zum Kunden" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "zurück vom Kunden" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "zurück ins Lager" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "In BestandsObjekt verbaut" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "verbautes BestandsObjekt" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "BestandsObjekt ausgebaut" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "ausgebaut nach Lagerort" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "Seriennummer hinzufügen" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" -msgstr "{n} Teile serialisiert" +msgid "Serial numbers already exist: {exists}" +msgstr "Seriennummern {exists} existieren bereits" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "aufteilen vom vorhandenen Bestand" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:1556 -msgid "Title" -msgstr "Titel" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "Objektverfolgung - Name des Eintrags" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "Link auf externe Seite für weitere Informationen" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "Test Notizen" @@ -5296,134 +5452,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "Dieses BestandsObjekt wird automatisch gelöscht wenn der Lagerbestand aufgebraucht ist." #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "abgelaufen" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "überfällig" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "Barcode abhängen" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "Barcode anhängen" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "zu Lagerort einscannen" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "Druck Aktionen" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "Test-Bericht" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "Bestand zählen" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "Bestand hinzufügen" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "Bestand entfernen" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "Lagerbestand serialisieren" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "Bestand verschieben" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" -msgstr "zu Kunden zuordnen" +msgstr "Kunden zuweisen" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "zu Bestand zurückgeben" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "BestandsObjekt deinstallieren" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "Deinstallieren" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "Bestands-Aktionen" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "in Variante ändern" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "BestandsObjekt duplizieren" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "BestandsObjekt bearbeiten" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "BestandsObjekt löschen" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "BestandsObjekt-Details" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "Kein Lagerort gesetzt" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "Barcode-Bezeichner" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "Elternposition" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieses BestandsObjekt lief am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" @@ -5467,7 +5623,7 @@ msgstr "Installierte BestandsObjekte" #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." -msgstr "Teile mit Seriennummern von diesem BestandObjekt anlegen." +msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." #: stock/templates/stock/item_serialize.html:7 msgid "Select quantity to serialize, and unique serial numbers." @@ -5534,7 +5690,7 @@ msgid "Stock Details" msgstr "Objekt-Details" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "Bestand-Lagerorte" @@ -5574,7 +5730,7 @@ msgstr "Lade..." msgid "The following stock items will be uninstalled" msgstr "Die folgenden BestandsObjekte werden nicht mehr verbaut" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "BestandsObjekt umwandeln" @@ -5607,8 +5763,8 @@ msgstr "Sind Sie sicher, dass Sie diesen BestandsObjekt-Verfolgungs-Eintrag lös msgid "Edit Stock Location" msgstr "BestandsObjekt-Lagerort bearbeiten" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)" @@ -5630,7 +5786,7 @@ msgstr "BestandsObjekt-Anhang löschen" #: stock/views.py:343 msgid "Assign to Customer" -msgstr "einem Kunden zuordnen" +msgstr "Kunden zuweisen" #: stock/views.py:352 msgid "Customer must be specified" @@ -5774,43 +5930,47 @@ msgstr "{n} Teile nach {dest} bewegt" msgid "Deleted {n} stock items" msgstr "{n} BestandsObjekte gelöscht" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "Lagerbestandsstatus bearbeiten" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "BestandsObjekt bearbeiten" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "Lagerbestand erfassen" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "Neues BestandsObjekt hinzufügen" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "Bestand duplizieren" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "Anzahl kann nicht negativ sein" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "Bestand-Lagerort löschen" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "BestandsObjekt löschen" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag löschen" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag bearbeiten" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag hinzufügen" @@ -5907,30 +6067,23 @@ msgid "Color Themes" msgstr "Farbschemata" #: templates/InvenTree/settings/appearance.html:29 -#, fuzzy, python-format -#| msgid "" -#| "\n" -#| "\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" -#| "\t\tPlease select another color theme :)\n" -#| "\t" -msgid "" -"\n" +#, python-format +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " -msgstr "" -"\n" +msgstr "\n" "\t\tDie CSS Datei \"%(invalid_color_theme)s.css\" für das aktuell ausgewählte Farbschema wurde nicht gefunden.
\n" "\t\tBitte ein anderes Farbschema auswählen:)\n" -"\t" +"\t " #: templates/InvenTree/settings/appearance.html:39 msgid "Language" -msgstr "" +msgstr "Sprache" #: templates/InvenTree/settings/appearance.html:61 msgid "Set Language" -msgstr "" +msgstr "Sprache festlegen" #: templates/InvenTree/settings/build.html:10 msgid "Build Order Settings" @@ -6017,7 +6170,7 @@ msgstr "Bestands-Einstellungen" #: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50 msgid "Stock Options" -msgstr "Stock-Optionen" +msgstr "Bestands-Einstellungen " #: templates/InvenTree/settings/tabs.html:3 #: templates/InvenTree/settings/user.html:10 @@ -6030,7 +6183,7 @@ msgstr "Konto" #: templates/InvenTree/settings/tabs.html:9 msgid "Appearance" -msgstr "" +msgstr "Anzeige" #: templates/InvenTree/settings/tabs.html:13 msgid "InvenTree Settings" @@ -6111,19 +6264,27 @@ msgstr "Code auf GitHub ansehen" #: templates/about.html:63 msgid "Credits" -msgstr "" +msgstr "Danksagung" #: templates/about.html:68 msgid "Mobile App" -msgstr "" +msgstr "Mobile App" #: templates/about.html:73 msgid "Submit Bug Report" msgstr "Fehlerbericht senden" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "In die Zwischenablage kopieren" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "Versionsinformationen kopieren" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "Schliessen" @@ -6131,10 +6292,6 @@ msgstr "Schliessen" msgid "Add Attachment" msgstr "Anhang hinzufügen" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "Datei" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "Hochgeladen" @@ -6187,7 +6344,7 @@ msgstr "Server-Fehler" msgid "Unknown response from server" msgstr "Unbekannte Antwort von Server erhalten" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "Ungültige Antwort von Server" @@ -6295,7 +6452,7 @@ msgstr "Keine Stücklisten-Position(en) gefunden" #: templates/js/build.js:62 msgid "Auto-allocate stock items to this output" -msgstr "BestandsObjekte automatisch Endprodukt zuordnen" +msgstr "Teilbestand automatisch Endprodukt zuweisen" #: templates/js/build.js:70 msgid "Unallocate stock from build output" @@ -6332,7 +6489,7 @@ msgstr "Keine Bauaufträge passen zur Anfrage" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "Auswählen" @@ -6350,7 +6507,7 @@ msgstr "Teile geliefert" #: templates/js/company.js:83 msgid "Parts Manufactured" -msgstr "Teile gefertigt" +msgstr "Hersteller-Teile" #: templates/js/company.js:96 msgid "No company information found" @@ -6372,7 +6529,7 @@ msgstr "Baugruppe" #: templates/js/company.js:227 msgid "No supplier parts found" -msgstr "Keine Zulieferer-Teile gefunden" +msgstr "Keine Zuliefererteile gefunden" #: templates/js/filters.js:193 msgid "Select filter" @@ -6430,96 +6587,96 @@ msgstr "Label auswählen" msgid "Select Label Template" msgstr "Label-Vorlage auswählen" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "Warte auf Server..." -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "Fehler-Informationen anzeigen" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "Akzeptieren" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "abbrechen" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "Lade Daten" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "Abschicken" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "ungültige Antwort vom Server" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "Formulardaten fehlen bei Serverantwort" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "Formulardaten fehlerhaft" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "JSON Antwort enthält keine Formulardaten" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "Keine Antwort" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "keine Antwort vom InvenTree Server" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "Fehler 400: Ungültige Anfrage" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "Fehler 400 von Server erhalten" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "Fehler 401: Nicht Angemeldet" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "Authentication Kredentials nicht angegeben" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "Fehler 403: keine Berechtigung" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "Fehlende Berechtigung für diese Aktion" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "Fehler 404: Ressource nicht gefunden" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "Fehler 408: Zeitüberschreitung" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "Verbindungszeitüberschreitung bei der Datenanforderung" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "Fehler bei Formulardaten-Anfrage" @@ -6537,7 +6694,7 @@ msgstr "Keine Aufträge gefunden" #: templates/js/part.js:52 templates/js/part.js:137 msgid "Trackable part" -msgstr "nachverfolgbares Teil" +msgstr "Nachverfolgbares Teil" #: templates/js/part.js:56 templates/js/part.js:141 msgid "Virtual part" @@ -6563,7 +6720,7 @@ msgstr "Keine Teile gefunden" msgid "No category" msgstr "Keine Kategorie" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "Bestand niedrig" @@ -6715,7 +6872,7 @@ msgstr "lose" #: templates/js/stock.js:476 msgid "locations" -msgstr "lagerorte" +msgstr "Lagerorte" #: templates/js/stock.js:478 msgid "Undefined location" @@ -6761,7 +6918,7 @@ msgstr "BestandsObjekt verloren" msgid "Stock item is destroyed" msgstr "BestandsObjekt zerstört" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "gelöscht" @@ -6785,189 +6942,213 @@ msgstr "Status Code setzen" msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "Ungültiges Datum" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "Standort nicht mehr vorhanden" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "Bestellung existiert nicht mehr" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "Kunde existiert nicht mehr" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "Lagerbestand existiert nicht mehr" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "Hinzugefügt" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "Entfernt" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "Tracking-Eintrag bearbeiten" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "Tracking-Eintrag löschen" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "Neuen Lagerort anlegen" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "Seriennummer" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "Installiert" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "Installiere Objekt" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" -msgstr "nachverfolgbares Teil" +msgstr "Nachverfolgbares Teil" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "überprüft" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "Lagerorte einschließen" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "Unterkategorien einschließen" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" -msgstr "ist mit Seriennummer" +msgstr "Hat Seriennummer" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "Seriennummer >=" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "Seriennummer größer oder gleich" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "Seriennummer <=" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "Seriennummern kleiner oder gleich" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "Seriennummer" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "Losnummer" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "Aktive Teile" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "Bestand aktiver Teile anzeigen" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "Teil ist eine Baugruppe" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "Ist zugeordnet" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "Teil wurde zugeordnet" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "Bestand in Unter-Lagerorten einschließen" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "Zeige aufgebrauchte BestandsObjekte" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "Zeige abgelaufene BestandsObjekte" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "Bestand, der bald ablaufen, anzeigen" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "Zeige Objekte welche im Lager sind" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "In Arbeit" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "Elemente, die in Produktion sind, anzeigen" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "Varianten einschließen" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "BestandsObjekte für Teil-Varianten einschließen" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "BestandsObjekte, die in anderen Elementen verbaut sind, anzeigen" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "Zum Kunden geschickt" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "zeige zu Kunden zugeordnete Einträge" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "Bestandsstatus" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "Bauauftrags-Status" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "Bestellstatus" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "ausstehend" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "Hat IPN" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "Teil hat Interne Teilenummer" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "verfügbarer Lagerbestand" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "Favorit" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "Käuflich" @@ -7024,13 +7205,13 @@ msgstr "Spalten" msgid "All" msgstr "Alle" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "Fehler in Formular" #: templates/navbar.html:13 msgid "Toggle navigation" -msgstr "" +msgstr "Navigation ein-/ausklappen" #: templates/navbar.html:33 msgid "Buy" @@ -7058,7 +7239,7 @@ msgstr "Einloggen" #: templates/navbar.html:104 msgid "About InvenTree" -msgstr "Über InvenBaum" +msgstr "Über InvenTree" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -7136,31 +7317,47 @@ msgstr "Server" msgid "Instance Name" msgstr "Instanzname" -#: templates/stats.html:19 +#: templates/stats.html:18 +msgid "Database" +msgstr "Datenbank" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "Server läuft im Debug-Modus" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:40 msgid "Server status" msgstr "Serverstatus" -#: templates/stats.html:22 +#: templates/stats.html:43 msgid "Healthy" msgstr "Gesund" -#: templates/stats.html:24 +#: templates/stats.html:45 msgid "Issues detected" msgstr "Probleme erkannt" -#: templates/stats.html:31 +#: templates/stats.html:52 msgid "Background Worker" msgstr "Hintergrund-Prozess" -#: templates/stats.html:34 +#: templates/stats.html:55 msgid "Background worker not running" msgstr "Hintergrund-Prozess läuft nicht" -#: templates/stats.html:42 +#: templates/stats.html:63 msgid "Email Settings" msgstr "E-Mail-Einstellungen" -#: templates/stats.html:45 +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "E-Mail-Einstellungen nicht konfiguriert" @@ -7280,14 +7477,3 @@ msgstr "Berechtigungen Einträge zu ändern" msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" -#~ msgid "Marking this order as complete will remove these line items." -#~ msgstr "Wenn Sie diese Bestellung als abgeschlossen markieren, werden diese Positionen entfernt." - -#~ msgid "Create new purchase order for {{ supplier.name }}" -#~ msgstr "Neue Bestellung für {{ supplier.name }} anlegen" - -#~ msgid "Theme" -#~ msgstr "Thema" - -#~ msgid "Get the App" -#~ msgstr "App herunterladen" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 097f4c0f8c..7e057e4153 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -78,8 +78,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -107,7 +107,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -123,9 +123,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -133,8 +133,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -142,11 +142,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -160,7 +160,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -172,23 +172,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -204,60 +204,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -276,7 +352,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -382,35 +459,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -422,7 +499,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -452,11 +529,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -465,12 +542,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -523,9 +601,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -547,16 +625,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -566,7 +644,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -622,7 +700,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -635,7 +713,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -673,28 +751,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -716,75 +794,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -818,7 +892,7 @@ msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -838,9 +912,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -903,7 +977,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -914,8 +988,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -961,14 +1035,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1118,9 +1192,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1174,6 +1248,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1208,7 +1283,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1237,7 +1313,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1354,372 +1430,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1727,24 +1836,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1764,216 +1891,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1999,7 +2126,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2045,10 +2172,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2094,7 +2222,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2141,19 +2269,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2211,7 +2339,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2264,7 +2392,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2319,8 +2447,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2369,7 +2497,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2399,7 +2527,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2419,6 +2547,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2439,7 +2572,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2471,7 +2604,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2479,15 +2612,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2495,51 +2628,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2577,15 +2718,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2613,7 +2754,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2654,8 +2795,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2663,128 +2804,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2836,7 +2983,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2870,6 +3017,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2942,8 +3158,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2952,11 +3168,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2986,7 +3203,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3048,59 +3265,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3142,164 +3372,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3378,7 +3633,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3454,7 +3709,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3474,14 +3729,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3544,7 +3799,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3599,7 +3854,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3629,8 +3884,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3666,167 +3921,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3911,7 +4170,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3929,51 +4188,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -4004,10 +4230,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4029,7 +4251,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4097,7 +4319,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4288,15 +4510,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4321,7 +4539,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4357,19 +4575,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4398,7 +4616,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4426,42 +4644,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4570,6 +4785,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4719,63 +4938,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4877,17 +5096,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4899,22 +5118,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4942,8 +5161,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4999,243 +5218,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5290,134 +5453,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5528,7 +5691,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5568,7 +5731,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5601,8 +5764,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5768,43 +5931,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -6106,9 +6273,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6116,10 +6291,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6172,7 +6343,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6317,7 +6488,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6415,96 +6586,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6548,7 +6719,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6746,7 +6917,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6770,189 +6941,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7009,7 +7204,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7121,31 +7316,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 459ce5092a..f56eb19904 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: es-ES\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -33,7 +38,7 @@ msgstr "" #: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60 #: order/forms.py:71 part/forms.py:134 msgid "Confirm" -msgstr "" +msgstr "Confirmar" #: InvenTree/forms.py:126 msgid "Confirm delete" @@ -53,11 +58,11 @@ msgstr "" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "Confirmar la contraseña" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "Confirmar contraseña nueva" #: InvenTree/forms.py:203 msgid "Apply Theme" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -111,36 +116,36 @@ msgstr "" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "Comentario" #: InvenTree/models.py:62 msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" -msgstr "" +msgstr "Usuario" #: InvenTree/models.py:72 msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 msgid "Name" -msgstr "" +msgstr "Nombre" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,9 +159,9 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" -msgstr "" +msgstr "Descripción" #: InvenTree/models.py:115 msgid "Description (optional)" @@ -166,25 +171,25 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" -msgstr "" +msgstr "Inglés" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" -msgstr "" +msgstr "Francés" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" -msgstr "" +msgstr "Alemán" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" -msgstr "" +msgstr "Polaco" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" -msgstr "" +msgstr "Turco" #: InvenTree/status.py:93 msgid "Background worker check failed" @@ -198,63 +203,139 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" - -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 -msgid "Cancelled" -msgstr "" - -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 -msgid "Lost" -msgstr "" +msgstr "Terminado" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 +msgid "Cancelled" +msgstr "Cancelado" + +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 #: InvenTree/status_codes.py:190 +msgid "Lost" +msgstr "Perdida" + +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Attention needed" -msgstr "" - #: InvenTree/status_codes.py:186 -msgid "Damaged" -msgstr "" +msgid "OK" +msgstr "OK" #: InvenTree/status_codes.py:187 -msgid "Destroyed" -msgstr "" +msgid "Attention needed" +msgstr "Atención necesaria" + +#: InvenTree/status_codes.py:188 +msgid "Damaged" +msgstr "Dañado" #: InvenTree/status_codes.py:189 +msgid "Destroyed" +msgstr "Destruido" + +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 -msgid "Production" +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" msgstr "" +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Production" +msgstr "Producción" + #: InvenTree/validators.py:22 msgid "Not a valid currency code" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -292,7 +374,7 @@ msgstr "" #: InvenTree/views.py:587 msgid "Delete Item" -msgstr "" +msgstr "Eliminar elemento" #: InvenTree/views.py:636 msgid "Check box to confirm item deletion" @@ -304,7 +386,7 @@ msgstr "" #: InvenTree/views.py:662 templates/InvenTree/settings/user.html:22 msgid "Set Password" -msgstr "" +msgstr "Configurar Contraseña" #: InvenTree/views.py:681 msgid "Password fields must match" @@ -312,7 +394,7 @@ msgstr "" #: InvenTree/views.py:887 templates/navbar.html:95 msgid "System Information" -msgstr "" +msgstr "Información del sistema" #: barcodes/api.py:53 barcodes/api.py:150 msgid "Must provide barcode_data parameter" @@ -376,37 +458,37 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" -msgstr "" +msgstr "Cantidad" #: build/forms.py:49 msgid "Number of items to build" @@ -416,9 +498,9 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" -msgstr "" +msgstr "Números de serie" #: build/forms.py:97 msgid "Enter serial numbers for build outputs" @@ -446,27 +528,28 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" -msgstr "" +msgstr "Unicación" #: build/forms.py:211 msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" -msgstr "" +msgstr "Estado" #: build/forms.py:216 msgid "Build output stock status" @@ -486,7 +569,7 @@ msgstr "" #: build/forms.py:252 msgid "Confirm cancel" -msgstr "" +msgstr "Confirmar cancelación" #: build/forms.py:252 build/views.py:66 msgid "Confirm build cancellation" @@ -517,14 +600,14 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 msgid "Reference" -msgstr "" +msgstr "Referencia" #: build/models.py:137 msgid "Brief description of the build" @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,9 +643,9 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" -msgstr "" +msgstr "Parte" #: build/models.py:160 msgid "Select part to build" @@ -602,7 +685,7 @@ msgstr "" #: build/models.py:198 msgid "Completed items" -msgstr "" +msgstr "Elementos completados" #: build/models.py:200 msgid "Number of stock items which have been completed" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -655,7 +738,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:138 part/models.py:886 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" -msgstr "" +msgstr "Responsable" #: build/models.py:251 msgid "User responsible for this build order" @@ -667,32 +750,32 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" -msgstr "" +msgstr "Notas" #: build/models.py:262 msgid "Extra build notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,12 +911,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" -msgstr "" +msgstr "Número de serie" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -952,17 +1031,17 @@ msgstr "" #: build/templates/build/build_base.html:147 #: build/templates/build/detail.html:64 msgid "Progress" -msgstr "" +msgstr "Progreso" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1105,18 +1184,18 @@ msgstr "" #: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 msgid "Destination" -msgstr "" +msgstr "Destinación" #: build/templates/build/detail.html:53 msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" -msgstr "" +msgstr "Lote" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 @@ -1130,7 +1209,7 @@ msgstr "" #: build/templates/build/detail.html:132 templates/js/build.js:756 msgid "Completed" -msgstr "" +msgstr "Completados" #: build/templates/build/detail.html:136 msgid "Build not complete" @@ -1168,8 +1247,9 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" -msgstr "" +msgstr "Detalles" #: build/templates/build/navbar.html:21 build/templates/build/navbar.html:24 #: build/views.py:91 @@ -1202,10 +1282,11 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" -msgstr "" +msgstr "Guardar" #: build/templates/build/unallocate.html:10 msgid "Are you sure you wish to unallocate all stock for this build?" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" -msgstr "" +msgstr "días" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" -msgstr "" +msgstr "Página web" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" -msgstr "" +msgstr "Teléfono" + +#: company/models.py:112 +msgid "Contact phone number" +msgstr "Teléfono de contacto" + +#: company/models.py:115 company/templates/company/company_base.html:91 +msgid "Email" +msgstr "Email" #: company/models.py:115 -msgid "Contact phone number" -msgstr "" - -#: company/models.py:118 company/templates/company/company_base.html:91 -msgid "Email" -msgstr "" - -#: company/models.py:118 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" -msgstr "" +msgstr "Contacto" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" -msgstr "" +msgstr "Fabricante" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" -msgstr "" +msgstr "Proveedor" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" -msgstr "" +msgstr "Nota" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2013,7 +2145,7 @@ msgstr "" #: company/templates/company/company_base.html:84 msgid "Phone" -msgstr "" +msgstr "Teléfono" #: company/templates/company/delete.html:7 #, python-format @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,12 +2170,13 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" -msgstr "" +msgstr "Cliente" #: company/templates/company/detail_manufacturer_part.html:11 #: templates/InvenTree/search.html:149 @@ -2067,7 +2199,7 @@ msgstr "" #: part/templates/part/manufacturer.html:22 #: part/templates/part/supplier.html:20 msgid "Options" -msgstr "" +msgstr "Opciones" #: company/templates/company/detail_manufacturer_part.html:33 #: company/templates/company/detail_supplier_part.html:32 @@ -2088,7 +2220,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2117,7 +2249,7 @@ msgstr "" #: part/templates/part/category.html:114 part/templates/part/category.html:128 #: part/templates/part/stock.html:54 stock/templates/stock/location.html:163 msgid "Export" -msgstr "" +msgstr "Exportar" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2234,7 +2366,7 @@ msgstr "" #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 #: stock/views.py:1002 users/models.py:187 msgid "Delete" -msgstr "" +msgstr "Eliminar" #: company/templates/company/manufacturer_part_suppliers.html:48 #: part/templates/part/supplier.html:51 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2386,14 +2518,14 @@ msgstr "" #: part/templates/part/navbar.html:75 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" -msgstr "" +msgstr "Fabricantes" #: company/views.py:77 templates/InvenTree/search.html:336 #: templates/navbar.html:45 msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index ae5d861fa2..9f32eeb22f 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: fr\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -26,38 +31,38 @@ msgstr "" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "Entrer la date" #: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123 #: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227 #: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60 #: order/forms.py:71 part/forms.py:134 msgid "Confirm" -msgstr "" +msgstr "Confirmer" #: InvenTree/forms.py:126 msgid "Confirm delete" -msgstr "" +msgstr "Confirmer la suppression" #: InvenTree/forms.py:127 msgid "Confirm item deletion" -msgstr "" +msgstr "Confirmer la suppression de cet élément" #: InvenTree/forms.py:159 templates/registration/login.html:77 msgid "Enter password" -msgstr "" +msgstr "Entrer le mot de passe" #: InvenTree/forms.py:160 msgid "Enter new password" -msgstr "" +msgstr "Entrer le nouveau mot de passe" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "Confirmez le mot de passe" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "Confirmer le nouveau mot de passe" #: InvenTree/forms.py:203 msgid "Apply Theme" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -111,15 +116,15 @@ msgstr "" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "Commentaire" #: InvenTree/models.py:62 msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -127,8 +132,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,35 +159,35 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" -msgstr "" +msgstr "Description" #: InvenTree/models.py:115 msgid "Description (optional)" -msgstr "" +msgstr "Description (facultative)" #: InvenTree/models.py:123 msgid "parent" -msgstr "" +msgstr "parent" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -292,7 +374,7 @@ msgstr "" #: InvenTree/views.py:587 msgid "Delete Item" -msgstr "" +msgstr "Supprimer cet élément" #: InvenTree/views.py:636 msgid "Check box to confirm item deletion" @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 69191acc73..20cbccebaa 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: it\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -117,9 +122,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -127,8 +132,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -166,23 +171,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 23cec9e6fb..fe9b71062e 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: ja\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -117,9 +122,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -127,8 +132,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -166,23 +171,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index edc3b32d2b..c9c9975b16 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -11,136 +11,141 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: pl\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "Nie znaleziono punktu końcowego API" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "" +msgstr "Nie określono działania" #: InvenTree/api.py:124 msgid "No matching action found" -msgstr "" +msgstr "Nie znaleziono pasującej akcji" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "Wprowadź dane" #: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123 #: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227 #: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60 #: order/forms.py:71 part/forms.py:134 msgid "Confirm" -msgstr "" +msgstr "Potwierdź" #: InvenTree/forms.py:126 msgid "Confirm delete" -msgstr "" +msgstr "Potwierdź usunięcie" #: InvenTree/forms.py:127 msgid "Confirm item deletion" -msgstr "" +msgstr "Potwierdź usuwanie elementu" #: InvenTree/forms.py:159 templates/registration/login.html:77 msgid "Enter password" -msgstr "" +msgstr "Wprowadź hasło" #: InvenTree/forms.py:160 msgid "Enter new password" -msgstr "" +msgstr "Wprowadź nowe hasło" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "Potwierdź hasło" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "Potwierdź nowe hasło" #: InvenTree/forms.py:203 msgid "Apply Theme" -msgstr "" +msgstr "Zastosuj motyw" #: InvenTree/forms.py:233 msgid "Select Category" -msgstr "" +msgstr "Wybierz kategorię" #: InvenTree/helpers.py:377 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "Powtórzony numer seryjny: {n}" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" -msgstr "" +msgstr "Podano nieprawidłową ilość" #: InvenTree/helpers.py:387 msgid "Empty serial number string" -msgstr "" +msgstr "Pusty ciąg numeru seryjnego" #: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415 #: InvenTree/helpers.py:440 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Nieprawidłowa grupa: {g}" #: InvenTree/helpers.py:445 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "" +msgstr "Powtórzony numer seryjny: {g}" #: InvenTree/helpers.py:453 msgid "No serial numbers found" -msgstr "" +msgstr "Nie znaleziono numerów seryjnych" #: InvenTree/helpers.py:457 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "" +msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" -msgstr "" +msgstr "Załącznik" #: InvenTree/models.py:60 msgid "Select file to attach" -msgstr "" +msgstr "Wybierz plik do załączenia" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "Komentarz" #: InvenTree/models.py:62 msgid "File comment" -msgstr "" +msgstr "Komentarz pliku" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" -msgstr "" +msgstr "Użytkownik" #: InvenTree/models.py:72 msgid "upload date" -msgstr "" +msgstr "data przesłania" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 msgid "Name" -msgstr "" +msgstr "Nazwa" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,37 +159,37 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" -msgstr "" +msgstr "Opis" #: InvenTree/models.py:115 msgid "Description (optional)" -msgstr "" +msgstr "Opis (opcjonalny)" #: InvenTree/models.py:123 msgid "parent" -msgstr "" +msgstr "nadrzędny" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" -msgstr "" +msgstr "Angielski" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" -msgstr "" +msgstr "Francuski" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" -msgstr "" +msgstr "Niemiecki" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" -msgstr "" +msgstr "Polski" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" -msgstr "" +msgstr "Turecki" #: InvenTree/status.py:93 msgid "Background worker check failed" @@ -192,91 +197,168 @@ msgstr "" #: InvenTree/status.py:97 msgid "Email backend not configured" -msgstr "" +msgstr "Nie skonfigurowano backendu e-mail" #: InvenTree/status.py:100 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" -msgstr "" +msgstr "W toku" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "Umieszczony" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" - -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 -msgid "Cancelled" -msgstr "" - -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 -msgid "Lost" -msgstr "" +msgstr "Zakończono" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 -msgid "Returned" -msgstr "" +#: InvenTree/status_codes.py:316 +msgid "Cancelled" +msgstr "Anulowano" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 +msgid "Lost" +msgstr "Zagubiono" + +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 +msgid "Returned" +msgstr "Zwrócone" + +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" -msgstr "" - -#: InvenTree/status_codes.py:184 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Attention needed" -msgstr "" +msgstr "Wysłane" #: InvenTree/status_codes.py:186 -msgid "Damaged" -msgstr "" +msgid "OK" +msgstr "OK" #: InvenTree/status_codes.py:187 -msgid "Destroyed" -msgstr "" +msgid "Attention needed" +msgstr "Wymaga uwagi" + +#: InvenTree/status_codes.py:188 +msgid "Damaged" +msgstr "Uszkodzone" #: InvenTree/status_codes.py:189 +msgid "Destroyed" +msgstr "Zniszczone" + +#: InvenTree/status_codes.py:191 msgid "Rejected" +msgstr "Odrzucone" + +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:237 -msgid "Production" +#: InvenTree/status_codes.py:274 +msgid "Stock item created" msgstr "" +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "Lokalizacja zmieniona" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "Podziel element podrzędny" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "Wyślij do klienta" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "Zwrócony od klienta" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Production" +msgstr "Produkcja" + #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "" +msgstr "Nieprawidłowy kod waluty" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "" +msgstr "Błędny znak w nazwie elementu" #: InvenTree/validators.py:63 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "IPN musi być zgodny z wyrażeniem regularnym {pat}" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "" +msgstr "Niedozwolony znak w nazwie ({x})" #: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" @@ -292,27 +374,27 @@ msgstr "" #: InvenTree/views.py:587 msgid "Delete Item" -msgstr "" +msgstr "Usuń element" #: InvenTree/views.py:636 msgid "Check box to confirm item deletion" -msgstr "" +msgstr "Zaznacz pole aby potwierdzić usunięcie elementu" #: InvenTree/views.py:651 templates/InvenTree/settings/user.html:18 msgid "Edit User Information" -msgstr "" +msgstr "Edytuj informacje użytkownika" #: InvenTree/views.py:662 templates/InvenTree/settings/user.html:22 msgid "Set Password" -msgstr "" +msgstr "Ustaw hasło" #: InvenTree/views.py:681 msgid "Password fields must match" -msgstr "" +msgstr "Hasła muszą być zgodne" #: InvenTree/views.py:887 templates/navbar.html:95 msgid "System Information" -msgstr "" +msgstr "Informacja systemowa" #: barcodes/api.py:53 barcodes/api.py:150 msgid "Must provide barcode_data parameter" @@ -356,7 +438,7 @@ msgstr "" #: build/forms.py:37 msgid "Build Order reference" -msgstr "" +msgstr "Numer Zlecenia Budowy" #: build/forms.py:38 msgid "Order target date" @@ -370,43 +452,43 @@ msgstr "" #: templates/js/build.js:783 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" -msgstr "" +msgstr "Data docelowa" #: build/forms.py:43 build/models.py:224 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" -msgstr "" +msgstr "Ilość" #: build/forms.py:49 msgid "Number of items to build" @@ -416,9 +498,9 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" -msgstr "" +msgstr "Numer seryjny" #: build/forms.py:97 msgid "Enter serial numbers for build outputs" @@ -438,35 +520,36 @@ msgstr "" #: build/forms.py:169 msgid "Confirm stock allocation" -msgstr "" +msgstr "Potwierdź przydział zapasów" #: build/forms.py:186 msgid "Mark build as complete" -msgstr "" +msgstr "Oznacz budowę jako ukończoną" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" -msgstr "" +msgstr "Lokalizacja" #: build/forms.py:211 msgid "Location of completed parts" -msgstr "" +msgstr "Lokalizacja ukończonych części" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" -msgstr "" +msgstr "Status" #: build/forms.py:216 msgid "Build output stock status" @@ -474,7 +557,7 @@ msgstr "" #: build/forms.py:223 msgid "Confirm incomplete" -msgstr "" +msgstr "Potwierdź nieukończone" #: build/forms.py:224 msgid "Confirm completion with incomplete stock allocation" @@ -486,7 +569,7 @@ msgstr "" #: build/forms.py:252 msgid "Confirm cancel" -msgstr "" +msgstr "Na pewno anulować?" #: build/forms.py:252 build/views.py:66 msgid "Confirm build cancellation" @@ -501,7 +584,7 @@ msgstr "" #: part/templates/part/allocation.html:23 #: report/templates/report/inventree_build_order_base.html:106 msgid "Build Order" -msgstr "" +msgstr "Zlecenie Budowy" #: build/models.py:66 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:12 @@ -511,46 +594,46 @@ msgstr "" #: templates/InvenTree/search.html:185 #: templates/InvenTree/settings/tabs.html:31 users/models.py:43 msgid "Build Orders" -msgstr "" +msgstr "Zlecenia budowy" #: build/models.py:126 msgid "Build Order Reference" -msgstr "" +msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 msgid "Reference" -msgstr "" +msgstr "Referencja" #: build/models.py:137 msgid "Brief description of the build" -msgstr "" +msgstr "Krótki opis budowy" #: build/models.py:146 build/templates/build/build_base.html:153 #: build/templates/build/detail.html:77 msgid "Parent Build" -msgstr "" +msgstr "Budowa nadrzędna" #: build/models.py:147 msgid "BuildOrder to which this build is allocated" -msgstr "" +msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,94 +643,94 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" -msgstr "" +msgstr "Część" #: build/models.py:160 msgid "Select part to build" -msgstr "" +msgstr "Wybierz część do budowy" #: build/models.py:165 msgid "Sales Order Reference" -msgstr "" +msgstr "Odwołanie do zamówienia sprzedaży" #: build/models.py:169 msgid "SalesOrder to which this build is allocated" -msgstr "" +msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" #: build/models.py:174 msgid "Source Location" -msgstr "" +msgstr "Lokalizacja źródła" #: build/models.py:178 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" -msgstr "" +msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)" #: build/models.py:183 msgid "Destination Location" -msgstr "" +msgstr "Lokalizacja docelowa" #: build/models.py:187 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy" #: build/models.py:191 msgid "Build Quantity" -msgstr "" +msgstr "Ilość do stworzenia" #: build/models.py:194 msgid "Number of stock items to build" -msgstr "" +msgstr "Ilość przedmiotów do zbudowania" #: build/models.py:198 msgid "Completed items" -msgstr "" +msgstr "Ukończone elementy" #: build/models.py:200 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "Ilość produktów magazynowych które zostały ukończone" #: build/models.py:204 part/templates/part/part_base.html:160 msgid "Build Status" -msgstr "" +msgstr "Status budowania" #: build/models.py:208 msgid "Build status code" -msgstr "" +msgstr "Kod statusu budowania" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" -msgstr "" +msgstr "Kod partii" #: build/models.py:216 msgid "Batch code for this build output" -msgstr "" +msgstr "Kod partii dla wyjścia budowy" #: build/models.py:219 order/models.py:105 part/models.py:882 #: part/templates/part/detail.html:126 templates/js/order.js:293 msgid "Creation Date" -msgstr "" +msgstr "Data utworzenia" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" -msgstr "" +msgstr "Docelowy termin zakończenia" #: build/models.py:227 order/models.py:218 templates/js/build.js:788 msgid "Completion Date" -msgstr "" +msgstr "Data zakończenia" #: build/models.py:233 msgid "completed by" -msgstr "" +msgstr "zrealizowane przez" #: build/models.py:241 msgid "Issued by" -msgstr "" +msgstr "Wydany przez" #: build/models.py:242 msgid "User who issued this build order" -msgstr "" +msgstr "Użytkownik, który wydał to zamówienie" #: build/models.py:250 build/templates/build/build_base.html:174 #: build/templates/build/detail.html:105 order/models.py:119 @@ -655,11 +738,11 @@ msgstr "" #: order/templates/order/sales_order_base.html:138 part/models.py:886 #: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" -msgstr "" +msgstr "Odpowiedzialny" #: build/models.py:251 msgid "User responsible for this build order" -msgstr "" +msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" #: build/models.py:256 build/templates/build/detail.html:91 #: company/templates/company/manufacturer_part_base.html:79 @@ -667,155 +750,151 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" -msgstr "" +msgstr "Link Zewnętrzny" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" -msgstr "" +msgstr "Link do zewnętrznego adresu URL" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" -msgstr "" +msgstr "Uwagi" #: build/models.py:262 msgid "Extra build notes" -msgstr "" +msgstr "Dodatkowe notatki do budowy" #: build/models.py:739 msgid "No build output specified" -msgstr "" +msgstr "Nie określono danych wyjściowych budowy" #: build/models.py:742 msgid "Build output is already completed" -msgstr "" +msgstr "Budowanie wyjścia jest już ukończone" #: build/models.py:745 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" -msgstr "" +msgstr "Budowa" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" -msgstr "" +msgstr "Element magazynowy" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" -msgstr "" +msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" -msgstr "" +msgstr "Zainstaluj do" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" -msgstr "" +msgstr "Docelowa lokalizacja magazynowa przedmiotu" #: build/templates/build/allocate.html:7 msgid "Allocate Parts" -msgstr "" +msgstr "Przydziel części" #: build/templates/build/allocate.html:15 msgid "Allocate Stock to Build" -msgstr "" +msgstr "Przydziel zapasy do budowy" #: build/templates/build/allocate.html:22 msgid "Allocate stock to build" -msgstr "" +msgstr "Przydziel zapasy do budowy" #: build/templates/build/allocate.html:23 msgid "Auto Allocate" -msgstr "" +msgstr "Automatyczne przypisywanie" #: build/templates/build/allocate.html:25 templates/js/build.js:646 msgid "Unallocate stock" -msgstr "" +msgstr "Cofnij przydział zapasów" #: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805 msgid "Unallocate Stock" -msgstr "" +msgstr "Cofnij przydział zapasów" #: build/templates/build/allocate.html:29 msgid "Order required parts" -msgstr "" +msgstr "Zamów wymagane komponenty" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" -msgstr "" +msgstr "Zamów części" #: build/templates/build/allocate.html:36 msgid "Untracked stock has been fully allocated for this Build Order" @@ -832,12 +911,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" -msgstr "" +msgstr "Numer Seryjny" #: build/templates/build/attachments.html:12 #: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46 @@ -846,11 +925,11 @@ msgstr "" #: part/templates/part/navbar.html:122 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 msgid "Attachments" -msgstr "" +msgstr "Załączniki" #: build/templates/build/auto_allocate.html:9 msgid "Automatically Allocate Stock" -msgstr "" +msgstr "Przydziel automatycznie zapasy" #: build/templates/build/auto_allocate.html:10 msgid "The following stock items will be allocated to the specified build output" @@ -897,10 +976,10 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" -msgstr "" +msgstr "Widok administratora" #: build/templates/build/build_base.html:71 #: build/templates/build/build_base.html:140 @@ -908,18 +987,18 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" -msgstr "" +msgstr "Zaległe" #: build/templates/build/build_base.html:80 msgid "Print actions" -msgstr "" +msgstr "Akcje druku" #: build/templates/build/build_base.html:84 msgid "Print Build Order" -msgstr "" +msgstr "Wydrukuj Numer Zlecenia Budowy" #: build/templates/build/build_base.html:90 #: build/templates/build/build_base.html:215 @@ -932,17 +1011,17 @@ msgstr "" #: build/templates/build/build_base.html:99 msgid "Edit Build" -msgstr "" +msgstr "Edytuj Budowę" #: build/templates/build/build_base.html:101 #: build/templates/build/build_base.html:199 build/views.py:57 msgid "Cancel Build" -msgstr "" +msgstr "Anuluj Budowę" #: build/templates/build/build_base.html:114 #: build/templates/build/detail.html:11 msgid "Build Details" -msgstr "" +msgstr "Szczegóły budowy" #: build/templates/build/build_base.html:140 #, python-format @@ -952,25 +1031,25 @@ msgstr "" #: build/templates/build/build_base.html:147 #: build/templates/build/detail.html:64 msgid "Progress" -msgstr "" +msgstr "Postęp" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" -msgstr "" +msgstr "Zamówienie zakupu" #: build/templates/build/build_base.html:167 #: build/templates/build/detail.html:98 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" -msgstr "" +msgstr "Dodane przez" #: build/templates/build/build_base.html:207 msgid "Incomplete Outputs" @@ -995,7 +1074,7 @@ msgstr "" #: build/templates/build/build_output.html:23 msgid "Create New Output" -msgstr "" +msgstr "Utwórz nowe wyjście" #: build/templates/build/build_output.html:36 msgid "Create a new build output" @@ -1035,7 +1114,7 @@ msgstr "" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "Czy na pewno przerwać tę budowę?" #: build/templates/build/complete.html:8 msgid "Build Order is complete" @@ -1085,11 +1164,11 @@ msgstr "" #: build/templates/build/create_build_item.html:17 #, python-format msgid "No stock available for %(part)s" -msgstr "" +msgstr "Brak zapasów dla %(part)s" #: build/templates/build/delete_build_item.html:8 msgid "Are you sure you want to unallocate this stock?" -msgstr "" +msgstr "Czy na pewno chcesz anulować przydział tego zapasu?" #: build/templates/build/delete_build_item.html:11 msgid "The selected stock will be unallocated from the build output" @@ -1097,7 +1176,7 @@ msgstr "" #: build/templates/build/detail.html:35 msgid "Stock Source" -msgstr "" +msgstr "Źródło magazynu" #: build/templates/build/detail.html:40 msgid "Stock can be taken from any available location." @@ -1105,24 +1184,24 @@ msgstr "" #: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375 msgid "Destination" -msgstr "" +msgstr "Przeznaczenie" #: build/templates/build/detail.html:53 msgid "Destination location not specified" -msgstr "" +msgstr "Nie określono lokalizacji docelowej" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" -msgstr "" +msgstr "Partia" #: build/templates/build/detail.html:116 #: order/templates/order/order_base.html:111 #: order/templates/order/sales_order_base.html:111 templates/js/build.js:778 msgid "Created" -msgstr "" +msgstr "Utworzony" #: build/templates/build/detail.html:127 msgid "No target date set" @@ -1130,11 +1209,11 @@ msgstr "" #: build/templates/build/detail.html:132 templates/js/build.js:756 msgid "Completed" -msgstr "" +msgstr "Zakończone" #: build/templates/build/detail.html:136 msgid "Build not complete" -msgstr "" +msgstr "Budowa niezakończona" #: build/templates/build/edit_build_item.html:7 msgid "Alter the quantity of stock allocated to the build output" @@ -1142,39 +1221,40 @@ msgstr "" #: build/templates/build/index.html:28 build/views.py:678 msgid "New Build Order" -msgstr "" +msgstr "Nowe zlecenie budowy" #: build/templates/build/index.html:37 build/templates/build/index.html:38 msgid "Print Build Orders" -msgstr "" +msgstr "Wydrukuj zlecenia budowy" #: build/templates/build/index.html:43 #: order/templates/order/purchase_orders.html:27 #: order/templates/order/sales_orders.html:27 msgid "Display calendar view" -msgstr "" +msgstr "Pokaż widok kalendarza" #: build/templates/build/index.html:46 #: order/templates/order/purchase_orders.html:30 #: order/templates/order/sales_orders.html:30 msgid "Display list view" -msgstr "" +msgstr "Pokaż widok listy" #: build/templates/build/navbar.html:12 msgid "Build Order Details" -msgstr "" +msgstr "Szczegóły zlecenia budowy" #: build/templates/build/navbar.html:15 #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" -msgstr "" +msgstr "Szczegóły" #: build/templates/build/navbar.html:21 build/templates/build/navbar.html:24 #: build/views.py:91 msgid "Allocate Stock" -msgstr "" +msgstr "Przydziel zapasy" #: build/templates/build/navbar.html:29 build/templates/build/navbar.html:32 msgid "Build Outputs" @@ -1182,34 +1262,35 @@ msgstr "" #: build/templates/build/navbar.html:39 msgid "Child Builds" -msgstr "" +msgstr "Budowy podrzędne" #: build/templates/build/navbar.html:50 msgid "Build Order Notes" -msgstr "" +msgstr "Notatki zlecenia budowy" #: build/templates/build/notes.html:12 msgid "Build Notes" -msgstr "" +msgstr "Notatki tworzenia" #: build/templates/build/notes.html:14 company/templates/company/notes.html:13 #: order/templates/order/order_notes.html:15 #: order/templates/order/sales_order_notes.html:16 #: part/templates/part/notes.html:14 stock/templates/stock/item_notes.html:15 msgid "Edit notes" -msgstr "" +msgstr "Edytuj uwagi" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" -msgstr "" +msgstr "Zapisz" #: build/templates/build/unallocate.html:10 msgid "Are you sure you wish to unallocate all stock for this build?" -msgstr "" +msgstr "Czy na pewno chcesz cofnąć przydział wszystkich zapasów dla tej budowy?" #: build/templates/build/unallocate.html:12 msgid "All incomplete stock allocations will be removed from the build" @@ -1217,7 +1298,7 @@ msgstr "" #: build/views.py:77 msgid "Build was cancelled" -msgstr "" +msgstr "Tworzenie zostało przerwane" #: build/views.py:138 msgid "Allocated stock to build output" @@ -1225,15 +1306,15 @@ msgstr "" #: build/views.py:150 msgid "Create Build Output" -msgstr "" +msgstr "Utwórz zlecenie budowy" #: build/views.py:168 msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" -msgstr "" +msgstr "Numer seryjny już istnieje" #: build/views.py:193 msgid "Serial numbers required for trackable build output" @@ -1297,7 +1378,7 @@ msgstr "" #: build/views.py:732 msgid "Created new build" -msgstr "" +msgstr "Utworzona nowa budowa" #: build/views.py:753 msgid "Edit Build Order Details" @@ -1330,7 +1411,7 @@ msgstr "" #: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575 #: templates/js/build.js:838 templates/js/build.js:1021 msgid "Available" -msgstr "" +msgstr "Dostępne" #: build/views.py:874 msgid "Stock item must be selected" @@ -1348,626 +1429,677 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" -msgstr "" +msgstr "Dodano załącznik" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" -msgstr "" +msgstr "Edytuj załącznik" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" -msgstr "" +msgstr "Załącznik zaktualizowany" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" -msgstr "" +msgstr "Usuń załącznik" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" +msgstr "Załącznik usunięto" + +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "Nazwa instancji InvenTree" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" -msgstr "" +msgstr "Nazwa firmy" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" -msgstr "" +msgstr "Bazowy URL" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" -msgstr "" +msgstr "Bazowy adres URL dla instancji serwera" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" -msgstr "" +msgstr "Domyślna waluta" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" -msgstr "" +msgstr "Domyślna waluta" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" -msgstr "" +msgstr "Pobierz z adresu URL" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" -msgstr "" +msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" -msgstr "" +msgstr "Obsługa kodu kreskowego" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" -msgstr "" +msgstr "Włącz obsługę skanera kodów" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" -msgstr "" +msgstr "Wyrażenie regularne IPN" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" -msgstr "" +msgstr "Zezwól na powtarzający się IPN" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" -msgstr "" +msgstr "Zezwól na edycję IPN" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" -msgstr "" +msgstr "Skopiuj BOM komponentu" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" -msgstr "" +msgstr "Szablon" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" -msgstr "" +msgstr "Złożenie" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" -msgstr "" +msgstr "Komponent" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" -msgstr "" +msgstr "Możliwość zakupu" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" -msgstr "" +msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" -msgstr "" +msgstr "Możliwość sprzedaży" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" -msgstr "" +msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" -msgstr "" +msgstr "Możliwość śledzenia" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" -msgstr "" +msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" -msgstr "" +msgstr "Wirtualny" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" -msgstr "" +msgstr "Części są domyślnie wirtualne" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" -msgstr "" +msgstr "Tryb Debugowania" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" -msgstr "" +msgstr "Rozmiar strony" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" -msgstr "" +msgstr "Raporty testów" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" -msgstr "" +msgstr "Włącz generowanie raportów testów" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" -msgstr "" +msgstr "dni" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" -msgstr "" +msgstr "Grupuj według komponentu" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" -msgstr "" +msgstr "Ustawienia wartości" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" -msgstr "" +msgstr "Cena" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" -msgstr "" +msgstr "Domyślny" #: common/templates/common/edit_setting.html:11 msgid "Current value" -msgstr "" +msgstr "Aktualna wartość" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" -msgstr "" +msgstr "Zmień ustawienie" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 -#: company/templates/company/detail.html:42 -msgid "Currency" +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "Wyślik plik" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 +#: company/templates/company/detail.html:42 +msgid "Currency" +msgstr "Waluta" + +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" #: company/forms.py:77 part/forms.py:46 msgid "URL" -msgstr "" +msgstr "URL" #: company/forms.py:78 part/forms.py:47 msgid "Image URL" -msgstr "" +msgstr "URL zdjęcia" #: company/forms.py:118 msgid "Single Price" -msgstr "" +msgstr "Cena jednostkowa" #: company/forms.py:120 msgid "Single quantity price" -msgstr "" +msgstr "Cena jednostkowa" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" -msgstr "" +msgstr "Wybierz producenta" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" -msgstr "" +msgstr "Numer producenta" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" -msgstr "" +msgstr "MPN" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" -msgstr "" +msgstr "Opis firmy" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" -msgstr "" +msgstr "Opis firmy" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" -msgstr "" +msgstr "Strona WWW" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" -msgstr "" +msgstr "Witryna internetowa firmy" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" -msgstr "" +msgstr "Adres" + +#: company/models.py:108 +msgid "Company address" +msgstr "Adres firmy" #: company/models.py:111 -msgid "Company address" -msgstr "" - -#: company/models.py:114 msgid "Phone number" -msgstr "" +msgstr "Numer telefonu" + +#: company/models.py:112 +msgid "Contact phone number" +msgstr "Numer telefonu kontaktowego" + +#: company/models.py:115 company/templates/company/company_base.html:91 +msgid "Email" +msgstr "Adres E-Mail" #: company/models.py:115 -msgid "Contact phone number" -msgstr "" - -#: company/models.py:118 company/templates/company/company_base.html:91 -msgid "Email" -msgstr "" - -#: company/models.py:118 msgid "Contact email address" -msgstr "" +msgstr "Kontaktowy adres e-mail" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" -msgstr "" +msgstr "Kontakt" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" -msgstr "" +msgstr "Punkt kontaktowy" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" -msgstr "" +msgstr "Łącze" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" -msgstr "" +msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" -msgstr "" +msgstr "Obraz" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" -msgstr "" +msgstr "jest klientem" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" -msgstr "" +msgstr "Czy sprzedajesz produkty tej firmie?" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" -msgstr "" +msgstr "jest dostawcą" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" -msgstr "" +msgstr "Czy kupujesz przedmioty od tej firmy?" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" -msgstr "" +msgstr "jest producentem" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "Czy to przedsiębiorstwo produkuje części?" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" -msgstr "" +msgstr "Część bazowa" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" -msgstr "" +msgstr "Wybierz część" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" -msgstr "" +msgstr "Producent" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" -msgstr "" +msgstr "Dostawca" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" -msgstr "" +msgstr "Wybierz dostawcę" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" -msgstr "" +msgstr "SKU" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" -msgstr "" +msgstr "Część producenta" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" -msgstr "" +msgstr "Uwaga" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" -msgstr "" +msgstr "koszt podstawowy" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" -msgstr "" +msgstr "Opakowanie" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" -msgstr "" +msgstr "Opakowanie części" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" -msgstr "" +msgstr "wielokrotność" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1981,19 +2113,19 @@ msgstr "" #: company/templates/company/company_base.html:35 #: templates/InvenTree/search.html:304 templates/js/company.js:33 msgid "Company" -msgstr "" +msgstr "Firma" #: company/templates/company/company_base.html:25 #: part/templates/part/part_thumb.html:21 msgid "Upload new image" -msgstr "" +msgstr "Prześlij nowy obraz" #: company/templates/company/company_base.html:27 #: part/templates/part/part_thumb.html:23 msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2013,7 +2145,7 @@ msgstr "" #: company/templates/company/company_base.html:84 msgid "Phone" -msgstr "" +msgstr "Telefon" #: company/templates/company/delete.html:7 #, python-format @@ -2022,43 +2154,43 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" #: company/templates/company/detail.html:21 msgid "Company Name" -msgstr "" +msgstr "Nazwa firmy" #: company/templates/company/detail.html:36 msgid "No website specified" -msgstr "" +msgstr "Nie określono strony internetowej" #: company/templates/company/detail.html:45 msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" -msgstr "" +msgstr "Klient" #: company/templates/company/detail_manufacturer_part.html:11 #: templates/InvenTree/search.html:149 msgid "Manufacturer Parts" -msgstr "" +msgstr "Części producenta" #: company/templates/company/detail_manufacturer_part.html:22 msgid "Create new manufacturer part" -msgstr "" +msgstr "Utwórz nową część producenta" #: company/templates/company/detail_manufacturer_part.html:23 #: part/templates/part/manufacturer.html:19 msgid "New Manufacturer Part" -msgstr "" +msgstr "Nowa część producenta" #: company/templates/company/detail_manufacturer_part.html:28 #: company/templates/company/detail_supplier_part.html:27 @@ -2067,120 +2199,120 @@ msgstr "" #: part/templates/part/manufacturer.html:22 #: part/templates/part/supplier.html:20 msgid "Options" -msgstr "" +msgstr "Opcje" #: company/templates/company/detail_manufacturer_part.html:33 #: company/templates/company/detail_supplier_part.html:32 #: part/templates/part/category.html:127 msgid "Order parts" -msgstr "" +msgstr "Zamów części" #: company/templates/company/detail_manufacturer_part.html:36 #: company/templates/company/detail_supplier_part.html:35 msgid "Delete parts" -msgstr "" +msgstr "Usuń części" #: company/templates/company/detail_manufacturer_part.html:36 #: company/templates/company/detail_supplier_part.html:35 msgid "Delete Parts" -msgstr "" +msgstr "Usuń części" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" -msgstr "" +msgstr "Nowy komponent" #: company/templates/company/detail_manufacturer_part.html:67 #: company/templates/company/detail_supplier_part.html:67 msgid "Create new Part" -msgstr "" +msgstr "Utwórz nowy komponent" #: company/templates/company/detail_manufacturer_part.html:72 #: company/views.py:71 part/templates/part/manufacturer.html:52 #: part/templates/part/supplier.html:56 msgid "New Manufacturer" -msgstr "" +msgstr "Now producent" #: company/templates/company/detail_manufacturer_part.html:73 #: company/views.py:284 msgid "Create new Manufacturer" -msgstr "" +msgstr "Utwórz nowego producenta" #: company/templates/company/detail_stock.html:10 msgid "Supplier Stock" -msgstr "" +msgstr "Zapasy dostawcy" #: company/templates/company/detail_stock.html:37 #: company/templates/company/supplier_part_stock.html:34 #: part/templates/part/category.html:114 part/templates/part/category.html:128 #: part/templates/part/stock.html:54 stock/templates/stock/location.html:163 msgid "Export" -msgstr "" +msgstr "Eksportuj" #: company/templates/company/detail_supplier_part.html:11 #: company/templates/company/manufacturer_part_navbar.html:11 #: company/templates/company/manufacturer_part_suppliers.html:10 #: templates/InvenTree/search.html:164 msgid "Supplier Parts" -msgstr "" +msgstr "Komponenty dostawcy" #: company/templates/company/detail_supplier_part.html:21 #: order/templates/order/order_wizard/select_parts.html:42 #: order/templates/order/purchase_order_detail.html:50 msgid "Create new supplier part" -msgstr "" +msgstr "Utwórz nowego dostawcę części" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" -msgstr "" +msgstr "Now dostawca części" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" -msgstr "" +msgstr "Nowy dostawca" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" -msgstr "" +msgstr "Dodaj nowego dostawcę" #: company/templates/company/index.html:8 msgid "Supplier List" -msgstr "" +msgstr "Lista dostawców" #: company/templates/company/manufacturer_part_base.html:36 #: company/templates/company/supplier_part_base.html:36 #: company/templates/company/supplier_part_orders.html:17 #: part/templates/part/orders.html:17 part/templates/part/part_base.html:65 msgid "Order part" -msgstr "" +msgstr "Zamów część" #: company/templates/company/manufacturer_part_base.html:41 msgid "Edit manufacturer part" -msgstr "" +msgstr "Edytuj część producenta" #: company/templates/company/manufacturer_part_base.html:45 msgid "Delete manufacturer part" -msgstr "" +msgstr "Usuń cześć producenta" #: company/templates/company/manufacturer_part_base.html:57 #: company/templates/company/manufacturer_part_detail.html:10 msgid "Manufacturer Part Details" -msgstr "" +msgstr "Szczegóły części producenta" #: company/templates/company/manufacturer_part_base.html:62 #: company/templates/company/manufacturer_part_detail.html:18 #: company/templates/company/supplier_part_base.html:61 #: company/templates/company/supplier_part_detail.html:18 msgid "Internal Part" -msgstr "" +msgstr "Część wewnętrzna" #: company/templates/company/manufacturer_part_delete.html:6 msgid "Are you sure you want to delete the following Manufacturer Parts?" @@ -2196,7 +2328,7 @@ msgstr "" #: part/templates/part/navbar.html:81 templates/InvenTree/search.html:316 #: templates/navbar.html:35 msgid "Suppliers" -msgstr "" +msgstr "Dostawcy" #: company/templates/company/manufacturer_part_navbar.html:19 msgid "Manufacturer Part Stock" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2213,7 +2345,7 @@ msgstr "" #: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:173 #: templates/js/part.js:398 templates/js/stock.js:563 templates/navbar.html:26 msgid "Stock" -msgstr "" +msgstr "Stan" #: company/templates/company/manufacturer_part_navbar.html:26 msgid "Manufacturer Part Orders" @@ -2222,7 +2354,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 #: company/templates/company/supplier_part_navbar.html:22 msgid "Orders" -msgstr "" +msgstr "Zamówienia" #: company/templates/company/manufacturer_part_suppliers.html:22 #: part/templates/part/supplier.html:22 @@ -2234,12 +2366,12 @@ msgstr "" #: part/templates/part/related.html:44 part/templates/part/supplier.html:22 #: stock/views.py:1002 users/models.py:187 msgid "Delete" -msgstr "" +msgstr "Usuń" #: company/templates/company/manufacturer_part_suppliers.html:48 #: part/templates/part/supplier.html:51 msgid "Create new supplier" -msgstr "" +msgstr "Utwórz nowego dostawcę" #: company/templates/company/navbar.html:20 #: company/templates/company/navbar.html:23 @@ -2249,7 +2381,7 @@ msgstr "" #: company/templates/company/navbar.html:29 #: company/templates/company/navbar.html:32 msgid "Supplied Parts" -msgstr "" +msgstr "Dostarczone części" #: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33 #: stock/templates/stock/location.html:107 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2351,7 +2483,7 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:29 msgid "Pricing" -msgstr "" +msgstr "Cennik" #: company/templates/company/supplier_part_orders.html:18 #: part/templates/part/orders.html:18 @@ -2360,10 +2492,10 @@ msgstr "" #: company/templates/company/supplier_part_pricing.html:11 msgid "Pricing Information" -msgstr "" +msgstr "Informacja cenowa" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2375,7 +2507,7 @@ msgstr "" #: company/templates/company/supplier_part_pricing.html:89 #: part/templates/part/sale_prices.html:97 msgid "Edit price break" -msgstr "" +msgstr "Edytuj przedział cenowy" #: company/templates/company/supplier_part_pricing.html:90 #: part/templates/part/sale_prices.html:98 @@ -2386,33 +2518,38 @@ msgstr "" #: part/templates/part/navbar.html:75 templates/InvenTree/search.html:306 #: templates/navbar.html:36 msgid "Manufacturers" -msgstr "" +msgstr "Producenci" #: company/views.py:77 templates/InvenTree/search.html:336 #: templates/navbar.html:45 msgid "Customers" -msgstr "" +msgstr "Klienci" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" -msgstr "" +msgstr "Nowy klient" #: company/views.py:86 msgid "Companies" -msgstr "" +msgstr "Firmy" #: company/views.py:87 msgid "New Company" -msgstr "" +msgstr "Nowa firma" #: company/views.py:169 part/views.py:848 msgid "Download Image" -msgstr "" +msgstr "Pobierz obraz" #: company/views.py:198 part/views.py:880 msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2427,27 +2564,27 @@ msgstr "" #: company/views.py:259 msgid "Edit Company" -msgstr "" +msgstr "Edytuj firmę" #: company/views.py:264 msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" -msgstr "" +msgstr "Utwórz nowego klienta" #: company/views.py:289 msgid "Create new Company" -msgstr "" +msgstr "Utwórz nową firmę" #: company/views.py:316 msgid "Created new company" -msgstr "" +msgstr "Utwórz nową firmę" #: company/views.py:332 msgid "Company was deleted" -msgstr "" +msgstr "Usunięto firmę" #: company/views.py:357 msgid "Edit Manufacturer Part" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" -msgstr "" +msgstr "Edytuj przedział cenowy" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,71 +2626,79 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" -msgstr "" +msgstr "Nazwa etykiety" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" -msgstr "" +msgstr "Opis etykiety" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" -msgstr "" +msgstr "Etykieta" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" -msgstr "" +msgstr "Aktywne" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 -msgid "Width [mm]" -msgstr "" - #: label/models.py:130 +msgid "Width [mm]" +msgstr "Szerokość [mm]" + +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 -msgid "Height [mm]" -msgstr "" - #: label/models.py:137 +msgid "Height [mm]" +msgstr "Wysokość [mm]" + +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" -msgstr "" +msgstr "Filtry" #: order/forms.py:27 order/templates/order/order_base.html:47 msgid "Place order" -msgstr "" +msgstr "Złóż zamówienie" #: order/forms.py:38 order/templates/order/order_base.html:54 msgid "Mark order as complete" -msgstr "" +msgstr "Oznacz zamówienie jako zakończone" #: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59 #: order/templates/order/sales_order_base.html:59 msgid "Cancel order" -msgstr "" +msgstr "Anuluj zamówienie" #: order/forms.py:71 order/templates/order/sales_order_base.html:56 msgid "Ship order" -msgstr "" +msgstr "Wyślij zamówienie" #: order/forms.py:82 msgid "Receive parts to this location" @@ -2571,43 +2716,43 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" -msgstr "" +msgstr "Wprowadź ilość produktów magazynowych" #: order/models.py:99 msgid "Order reference" -msgstr "" +msgstr "Odniesienie zamówienia" #: order/models.py:101 msgid "Order description" -msgstr "" +msgstr "Opis Zamówienia" #: order/models.py:103 msgid "Link to external page" -msgstr "" +msgstr "Link do zewnętrznej witryny" #: order/models.py:111 part/templates/part/detail.html:132 msgid "Created By" -msgstr "" +msgstr "Utworzony przez" #: order/models.py:118 msgid "User or group responsible for this order" -msgstr "" +msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" #: order/models.py:123 msgid "Order notes" -msgstr "" +msgstr "Notatki do zamówienia" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2626,11 +2771,11 @@ msgstr "" #: order/models.py:201 msgid "received by" -msgstr "" +msgstr "odebrane przez" #: order/models.py:206 msgid "Issue Date" -msgstr "" +msgstr "Data wydania" #: order/models.py:207 msgid "Date order was issued" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" -msgstr "" +msgstr "Data wysyłki" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" -msgstr "" +msgstr "wysłane przez" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" -msgstr "" +msgstr "Ilość elementów" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" -msgstr "" +msgstr "Zamówienie" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" -msgstr "" +msgstr "Odebrane" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" -msgstr "" +msgstr "Cena zakupu" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" -msgstr "" +msgstr "Cena zakupu jednostkowego" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "Cena sprzedaży" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "Jednostkowa cena sprzedaży" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" -msgstr "" +msgstr "Linia" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" -msgstr "" +msgstr "Komponent" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2819,20 +2970,20 @@ msgstr "" #: order/templates/order/order_base.html:82 #: order/templates/order/sales_order_base.html:82 msgid "Order Status" -msgstr "" +msgstr "Status zamówienia" #: order/templates/order/order_base.html:117 #: report/templates/report/inventree_build_order_base.html:122 msgid "Issued" -msgstr "" +msgstr "Wydany" #: order/templates/order/order_base.html:180 #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" -msgstr "" +msgstr "Nowa lokalizacja" #: order/templates/order/order_base.html:181 #: order/templates/order/purchase_order_detail.html:101 @@ -2862,6 +3013,75 @@ msgstr "" #: order/templates/order/order_notes.html:13 msgid "Order Notes" +msgstr "Notatki zamówień" + +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "Wiersz" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." msgstr "" #: order/templates/order/order_wizard/select_parts.html:9 @@ -2878,7 +3098,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:31 msgid "Select Supplier" -msgstr "" +msgstr "Wybierz dostawcę" #: order/templates/order/order_wizard/select_parts.html:57 #, python-format @@ -2888,7 +3108,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:69 #: part/templates/part/set_category.html:32 msgid "Remove part" -msgstr "" +msgstr "Usuń część" #: order/templates/order/order_wizard/select_pos.html:8 msgid "Step 2 of 2 - Select Purchase Orders" @@ -2901,7 +3121,7 @@ msgstr "" #: order/templates/order/order_wizard/select_pos.html:31 #: templates/js/order.js:205 templates/js/order.js:308 msgid "Items" -msgstr "" +msgstr "Przedmioty" #: order/templates/order/order_wizard/select_pos.html:32 msgid "Select Purchase Order" @@ -2929,15 +3149,15 @@ msgstr "" #: order/templates/order/po_navbar.html:20 #: order/templates/order/po_received_items.html:12 msgid "Received Items" -msgstr "" +msgstr "Otrzymane elementy" #: order/templates/order/purchase_order_detail.html:14 msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" -msgstr "" +msgstr "Cena jednostkowa" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,10 +3201,10 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" -msgstr "" +msgstr "Części" #: order/templates/order/receive_parts.html:15 msgid "Select parts to receive against this order" @@ -2991,7 +3212,7 @@ msgstr "" #: order/templates/order/receive_parts.html:20 msgid "Order Code" -msgstr "" +msgstr "Kod zamówienia" #: order/templates/order/receive_parts.html:21 #: part/templates/part/part_base.html:129 templates/js/part.js:414 @@ -3000,7 +3221,7 @@ msgstr "" #: order/templates/order/receive_parts.html:23 msgid "Receive" -msgstr "" +msgstr "Odbierz" #: order/templates/order/receive_parts.html:36 msgid "Error: Referenced part has been removed" @@ -3008,7 +3229,7 @@ msgstr "" #: order/templates/order/receive_parts.html:57 msgid "Remove line" -msgstr "" +msgstr "Usuń linie" #: order/templates/order/sales_order_base.html:15 msgid "This SalesOrder has not been fully allocated" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" -msgstr "" +msgstr "Akcje" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" -msgstr "" +msgstr "Numer ID" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" -msgstr "" +msgstr "Przydzielono" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "Oblicz cenę" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,172 +3370,197 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" -msgstr "" +msgstr "Wyślij zamówienie" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" -msgstr "" +msgstr "Otrzymane przedmioty" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" -msgstr "" +msgstr "Nie ustawiono miejsca docelowego" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" -msgstr "" +msgstr "Błąd konwersji ilości na liczbę" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "Nie znaleziono ceny" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" -msgstr "" +msgstr "Domyślna lokalizacja" #: part/bom.py:139 part/templates/part/part_base.html:117 msgid "Available Stock" -msgstr "" +msgstr "Dostępna ilość" #: part/bom.py:379 #, python-brace-format @@ -3318,15 +3577,15 @@ msgstr "" #: part/forms.py:89 stock/forms.py:265 msgid "File Format" -msgstr "" +msgstr "Format pliku" #: part/forms.py:89 stock/forms.py:265 msgid "Select output file format" -msgstr "" +msgstr "Wybierz format pliku wyjściowego" #: part/forms.py:91 msgid "Cascading" -msgstr "" +msgstr "Kaskadowe" #: part/forms.py:91 msgid "Download cascading / multi-level BOM" @@ -3334,7 +3593,7 @@ msgstr "" #: part/forms.py:93 msgid "Levels" -msgstr "" +msgstr "Poziomy" #: part/forms.py:93 msgid "Select maximum number of BOM levels to export (0 = all levels)" @@ -3372,9 +3631,9 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" -msgstr "" +msgstr "Część nadrzędna" #: part/forms.py:123 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" @@ -3390,7 +3649,7 @@ msgstr "" #: part/forms.py:153 msgid "validate" -msgstr "" +msgstr "potwierdź" #: part/forms.py:153 msgid "Confirm that the BOM is correct" @@ -3448,9 +3707,9 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" -msgstr "" +msgstr "Podczęść" #: part/forms.py:372 msgid "Input quantity for price calculation" @@ -3462,20 +3721,20 @@ msgstr "" #: part/models.py:76 msgid "Default keywords" -msgstr "" +msgstr "Domyślne słowa kluczowe" #: part/models.py:76 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3523,25 +3782,25 @@ msgstr "" #: part/models.py:705 part/templates/part/detail.html:60 msgid "Variant Of" -msgstr "" +msgstr "Wariant" #: part/models.py:711 msgid "Part description" -msgstr "" +msgstr "Opis części" #: part/models.py:716 part/templates/part/category.html:73 #: part/templates/part/detail.html:67 msgid "Keywords" -msgstr "" +msgstr "Słowa kluczowe" #: part/models.py:717 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" -msgstr "" +msgstr "Kategoria" #: part/models.py:725 msgid "Part category" @@ -3550,7 +3809,7 @@ msgstr "" #: part/models.py:730 part/templates/part/detail.html:28 #: part/templates/part/part_base.html:94 templates/js/part.js:161 msgid "IPN" -msgstr "" +msgstr "IPN" #: part/models.py:731 msgid "Internal Part Number" @@ -3563,7 +3822,7 @@ msgstr "" #: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198 #: templates/js/part.js:165 msgid "Revision" -msgstr "" +msgstr "Wersja" #: part/models.py:760 msgid "Where is this item normally stored?" @@ -3587,16 +3846,16 @@ msgstr "" #: part/models.py:821 part/templates/part/detail.html:113 msgid "Minimum Stock" -msgstr "" +msgstr "Minimalny stan magazynowy" #: part/models.py:822 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" -msgstr "" +msgstr "Jednostki" #: part/models.py:829 msgid "Stock keeping units for this part" @@ -3623,14 +3882,14 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" -msgstr "" +msgstr "Aktywny" #: part/models.py:862 msgid "Is this part active?" -msgstr "" +msgstr "Czy ta część jest aktywna?" #: part/models.py:867 msgid "Is this a virtual part, such as a software product or license?" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 +#: part/models.py:1616 +msgid "Sell multiple" +msgstr "Sprzedaj wiele" + +#: part/models.py:1987 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:1966 +#: part/models.py:2004 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 msgid "Test Name" -msgstr "" +msgstr "Nazwa testu" -#: part/models.py:1987 +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" -msgstr "" +msgstr "Wymagane" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" -msgstr "" +msgstr "Dane" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" -msgstr "" +msgstr "Wartość domyślna" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" -msgstr "" +msgstr "Suma kontrolna" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" -msgstr "" +msgstr "Część 1" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" -msgstr "" +msgstr "Część 2" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" -msgstr "" +msgstr "Wybierz powiązaną część" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3843,7 +4106,7 @@ msgstr "" #: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 #: part/templates/part/navbar.html:51 msgid "Bill of Materials" -msgstr "" +msgstr "Zestawienie materiałowe" #: part/templates/part/bom.html:19 #, python-format @@ -3866,11 +4129,11 @@ msgstr "" #: part/templates/part/bom.html:35 msgid "Import BOM data" -msgstr "" +msgstr "Importuj dane BOM" #: part/templates/part/bom.html:39 msgid "Copy BOM from parent part" -msgstr "" +msgstr "Kopiuj BOM z części nadrzędnej" #: part/templates/part/bom.html:43 msgid "New BOM Item" @@ -3878,7 +4141,7 @@ msgstr "" #: part/templates/part/bom.html:46 msgid "Finish Editing" -msgstr "" +msgstr "Zakończ edycję" #: part/templates/part/bom.html:51 msgid "Edit BOM" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4021,11 +4247,11 @@ msgstr "" #: part/templates/part/category.html:24 msgid "All parts" -msgstr "" +msgstr "Wszystkie części" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" -msgstr "" +msgstr "Stwórz nową kategorię komponentów" #: part/templates/part/category.html:35 msgid "Edit part category" @@ -4091,9 +4317,9 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" -msgstr "" +msgstr "Utwórz nową lokalizację magazynową" #: part/templates/part/category_delete.html:5 msgid "Are you sure you want to delete category" @@ -4110,7 +4336,7 @@ msgstr "" #: part/templates/part/category_delete.html:11 msgid "category" -msgstr "" +msgstr "kategoria" #: part/templates/part/category_delete.html:13 msgid "top level Parts category" @@ -4134,16 +4360,16 @@ msgstr "" #: part/templates/part/category_navbar.html:37 #: part/templates/part/navbar.html:22 msgid "Parameters" -msgstr "" +msgstr "Parametry" #: part/templates/part/category_parametric.html:10 #: part/templates/part/navbar.html:19 part/templates/part/params.html:10 msgid "Part Parameters" -msgstr "" +msgstr "Parametry części" #: part/templates/part/copy_part.html:9 part/views.py:460 msgid "Duplicate Part" -msgstr "" +msgstr "Duplikuj część" #: part/templates/part/copy_part.html:10 #, python-format @@ -4167,11 +4393,11 @@ msgstr "" #: part/templates/part/detail.html:11 part/templates/part/navbar.html:11 msgid "Part Details" -msgstr "" +msgstr "Szczegóły części" #: part/templates/part/detail.html:42 msgid "Latest Serial Number" -msgstr "" +msgstr "Ostatni numer seryjny" #: part/templates/part/detail.html:47 msgid "No serial numbers recorded" @@ -4183,15 +4409,15 @@ msgstr "" #: part/templates/part/detail.html:139 msgid "Responsible User" -msgstr "" +msgstr "Odpowiedzialny użytkownik" #: part/templates/part/detail.html:153 msgid "Part is virtual (not a physical part)" -msgstr "" +msgstr "Część jest wirtualna (nie fizyczna)" #: part/templates/part/detail.html:155 msgid "Part is not a virtual part" -msgstr "" +msgstr "Część nie jest częścią wirtualną" #: part/templates/part/detail.html:163 msgid "Part is a template part (variants can be made from this part)" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index d14c214d50..df6f0336c7 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -11,6 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: ru\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" @@ -72,8 +77,8 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -101,7 +106,7 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" msgstr "" @@ -117,9 +122,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" msgstr "" @@ -127,8 +132,8 @@ msgstr "" msgid "upload date" msgstr "" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 @@ -136,11 +141,11 @@ msgid "Name" msgstr "" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -166,23 +171,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index db257af1fe..9d3d99e1c6 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -1,152 +1,151 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 10:47\n" +"Last-Translator: \n" +"Language-Team: Turkish\n" +"Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: tr\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "API uçnoktası bulunmadı" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "" +msgstr "Hiçbir eylem belirtilmedi" #: InvenTree/api.py:124 msgid "No matching action found" -msgstr "" +msgstr "Eşleşen eylem bulunamadı" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "Tarih giriniz" #: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123 #: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227 #: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60 #: order/forms.py:71 part/forms.py:134 msgid "Confirm" -msgstr "" +msgstr "Onay" #: InvenTree/forms.py:126 msgid "Confirm delete" -msgstr "" +msgstr "Silmeyi Onayla" #: InvenTree/forms.py:127 msgid "Confirm item deletion" -msgstr "" +msgstr "Silmeyi onayla" #: InvenTree/forms.py:159 templates/registration/login.html:77 msgid "Enter password" -msgstr "" +msgstr "Şifrenizi girin" #: InvenTree/forms.py:160 msgid "Enter new password" -msgstr "" +msgstr "Lütfen Yeni Parolayı Girin" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "Parolayı doğrulayın" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "Yeni parolayı doğrulayın" #: InvenTree/forms.py:203 msgid "Apply Theme" -msgstr "" +msgstr "Temayı Uygula" #: InvenTree/forms.py:233 msgid "Select Category" -msgstr "" +msgstr "Kategori Seçin" #: InvenTree/helpers.py:377 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "Tekrarlanan seri {n}" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" -msgstr "" +msgstr "Geçersiz veri sağlandı" #: InvenTree/helpers.py:387 msgid "Empty serial number string" -msgstr "" +msgstr "Boş seri numarası dizesi" #: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415 #: InvenTree/helpers.py:440 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Geçersiz grup: {g}" #: InvenTree/helpers.py:445 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "" +msgstr "Tekrarlanan seri {g}" #: InvenTree/helpers.py:453 msgid "No serial numbers found" -msgstr "" +msgstr "Seri numarası bulunamadı" #: InvenTree/helpers.py:457 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "" +msgstr "Benzersiz serinin numaraları ({s}) miktarla eşleşmeli ({q})" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" -msgstr "" +msgstr "Ek" #: InvenTree/models.py:60 msgid "Select file to attach" -msgstr "" +msgstr "Eklenecek dosyayı seç" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "Yorum" #: InvenTree/models.py:62 msgid "File comment" -msgstr "" +msgstr "Yorum" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" -msgstr "" +msgstr "Kullanıcı" #: InvenTree/models.py:72 msgid "upload date" -msgstr "" +msgstr "Yükleme tarihi" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 msgid "Name" -msgstr "" +msgstr "Adı" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -160,123 +159,200 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" -msgstr "" +msgstr "Açıklama" #: InvenTree/models.py:115 msgid "Description (optional)" -msgstr "" +msgstr "Açıklama(opsiyonel)" #: InvenTree/models.py:123 msgid "parent" -msgstr "" +msgstr "ebeveyn" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" -msgstr "" +msgstr "İngilizce" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" -msgstr "" +msgstr "Fransızca" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" -msgstr "" +msgstr "Almanca" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" -msgstr "" +msgstr "Polonyaca" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" -msgstr "" +msgstr "Türkçe" #: InvenTree/status.py:93 msgid "Background worker check failed" -msgstr "" +msgstr "Arka plan çalışanı kontrolü başarısız oldu" #: InvenTree/status.py:97 msgid "Email backend not configured" -msgstr "" +msgstr "E-posta arka ucu yapılandırılmadı" #: InvenTree/status.py:100 msgid "InvenTree system health checks failed" -msgstr "" +msgstr "InvenTree sistem sağlık kontrolü başarısız" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" -msgstr "" +msgstr "Bekliyor" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "Sipariş verildi" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" - -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 -msgid "Cancelled" -msgstr "" - -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 -msgid "Lost" -msgstr "" +msgstr "Tamamlandı" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 -msgid "Returned" -msgstr "" +#: InvenTree/status_codes.py:316 +msgid "Cancelled" +msgstr "İptal edildi" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 +msgid "Lost" +msgstr "Kayıp" + +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 +msgid "Returned" +msgstr "İade" + +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" -msgstr "" - -#: InvenTree/status_codes.py:184 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Attention needed" -msgstr "" +msgstr "Sevk edildi" #: InvenTree/status_codes.py:186 -msgid "Damaged" -msgstr "" +msgid "OK" +msgstr "TAMAM" #: InvenTree/status_codes.py:187 -msgid "Destroyed" -msgstr "" +msgid "Attention needed" +msgstr "Dikkat gerekli" + +#: InvenTree/status_codes.py:188 +msgid "Damaged" +msgstr "Hasarlı" #: InvenTree/status_codes.py:189 +msgid "Destroyed" +msgstr "Kullanılamaz durumda" + +#: InvenTree/status_codes.py:191 msgid "Rejected" +msgstr "Reddedildi" + +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:237 -msgid "Production" +#: InvenTree/status_codes.py:274 +msgid "Stock item created" msgstr "" +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Production" +msgstr "Üretim" + #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "" +msgstr "Geçerli para birimi yok" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "" +msgstr "Parça adında geçersiniz karakter bulunuyor" #: InvenTree/validators.py:63 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "IPN regex kalıbıyla eşleşmelidir {pat}" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -382,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -422,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -452,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -465,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -523,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -547,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -566,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -622,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -635,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -673,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -716,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -818,7 +891,7 @@ msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -838,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -903,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -914,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -961,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1118,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1174,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1208,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1237,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1354,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1727,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1764,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1999,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2028,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2045,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2094,7 +2220,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2141,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2211,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2264,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2319,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2369,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2399,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2419,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2439,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2471,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2479,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2495,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2577,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2613,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2654,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2663,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2836,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2870,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2942,8 +3156,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2952,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2986,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3048,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3142,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3378,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3454,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3474,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3544,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3599,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3629,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3666,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3911,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3929,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -4004,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4029,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4097,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4288,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4321,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4357,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4398,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4426,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4570,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4719,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4877,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4899,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4942,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4999,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5290,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5528,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5568,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5601,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5768,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5902,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6106,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6116,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6172,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6317,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6415,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6548,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6746,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6770,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7009,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7121,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7264,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 2075ec9326..c897b54b5a 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-05 17:33+1000\n" -"PO-Revision-Date: 2021-04-21 09:33\n" +"POT-Creation-Date: 2021-05-17 10:46+0000\n" +"PO-Revision-Date: 2021-05-17 14:58\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -11,33 +11,38 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "未找到 API 端点" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "" +msgstr "未指定操作" #: InvenTree/api.py:124 msgid "No matching action found" -msgstr "" +msgstr "未找到指定操作" #: InvenTree/fields.py:44 msgid "Enter date" -msgstr "" +msgstr "输入日期" #: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123 #: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227 #: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60 #: order/forms.py:71 part/forms.py:134 msgid "Confirm" -msgstr "" +msgstr "确认" #: InvenTree/forms.py:126 msgid "Confirm delete" -msgstr "" +msgstr "确认删除" #: InvenTree/forms.py:127 msgid "Confirm item deletion" @@ -45,35 +50,35 @@ msgstr "" #: InvenTree/forms.py:159 templates/registration/login.html:77 msgid "Enter password" -msgstr "" +msgstr "输入密码" #: InvenTree/forms.py:160 msgid "Enter new password" -msgstr "" +msgstr "输入新密码" #: InvenTree/forms.py:167 msgid "Confirm password" -msgstr "" +msgstr "确认密码" #: InvenTree/forms.py:168 msgid "Confirm new password" -msgstr "" +msgstr "确认新密码" #: InvenTree/forms.py:203 msgid "Apply Theme" -msgstr "" +msgstr "应用主题" #: InvenTree/forms.py:233 msgid "Select Category" -msgstr "" +msgstr "选择分类" #: InvenTree/helpers.py:377 #, python-brace-format msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353 -#: stock/views.py:1763 +#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355 +#: stock/views.py:1795 msgid "Invalid quantity provided" msgstr "" @@ -94,53 +99,53 @@ msgstr "" #: InvenTree/helpers.py:453 msgid "No serial numbers found" -msgstr "" +msgstr "未找到序列号" #: InvenTree/helpers.py:457 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:59 stock/models.py:1662 +#: InvenTree/models.py:59 stock/models.py:1761 msgid "Attachment" -msgstr "" +msgstr "附件" #: InvenTree/models.py:60 msgid "Select file to attach" -msgstr "" +msgstr "选择附件" #: InvenTree/models.py:62 templates/attachment_table.html:16 msgid "Comment" -msgstr "" +msgstr "注释" #: InvenTree/models.py:62 msgid "File comment" -msgstr "" +msgstr "文件注释" -#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908 +#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946 #: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/stock.js:1041 +#: templates/js/stock.js:1146 msgid "User" -msgstr "" +msgstr "用户" #: InvenTree/models.py:72 msgid "upload date" -msgstr "" +msgstr "上传日期" -#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101 -#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27 +#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102 +#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27 #: report/models.py:179 templates/InvenTree/search.html:137 #: templates/InvenTree/search.html:289 templates/js/part.js:110 #: templates/js/part.js:553 templates/js/stock.js:944 msgid "Name" -msgstr "" +msgstr "名称" #: InvenTree/models.py:114 build/models.py:134 -#: build/templates/build/detail.html:21 company/models.py:342 -#: company/models.py:494 company/templates/company/detail.html:27 +#: build/templates/build/detail.html:21 company/models.py:339 +#: company/models.py:491 company/templates/company/detail.html:27 #: company/templates/company/manufacturer_part_base.html:72 #: company/templates/company/supplier_part_base.html:71 -#: company/templates/company/supplier_part_detail.html:31 label/models.py:108 +#: company/templates/company/supplier_part_detail.html:31 label/models.py:109 #: order/models.py:101 order/templates/order/purchase_order_detail.html:143 #: part/models.py:710 part/templates/part/detail.html:54 #: part/templates/part/set_category.html:14 report/models.py:192 @@ -154,7 +159,7 @@ msgstr "" #: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252 #: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643 #: templates/js/stock.js:554 templates/js/stock.js:956 -#: templates/js/stock.js:1015 +#: templates/js/stock.js:1001 msgid "Description" msgstr "" @@ -166,23 +171,23 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/settings.py:491 +#: InvenTree/settings.py:501 msgid "English" msgstr "" -#: InvenTree/settings.py:492 +#: InvenTree/settings.py:502 msgid "French" msgstr "" -#: InvenTree/settings.py:493 +#: InvenTree/settings.py:503 msgid "German" msgstr "" -#: InvenTree/settings.py:494 +#: InvenTree/settings.py:504 msgid "Polish" msgstr "" -#: InvenTree/settings.py:495 +#: InvenTree/settings.py:505 msgid "Turkish" msgstr "" @@ -198,60 +203,136 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:236 +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:314 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:103 +#: InvenTree/status_codes.py:105 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239 +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 -#: InvenTree/status_codes.py:238 +#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 +#: InvenTree/status_codes.py:316 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 -#: InvenTree/status_codes.py:188 +#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 +#: InvenTree/status_codes.py:190 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 -#: InvenTree/status_codes.py:190 +#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 +#: InvenTree/status_codes.py:192 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:186 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:187 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:188 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:187 +#: InvenTree/status_codes.py:189 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:189 +#: InvenTree/status_codes.py:191 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:237 +#: InvenTree/status_codes.py:272 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:279 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:291 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:315 msgid "Production" msgstr "" @@ -270,7 +351,8 @@ msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -msgid "Reference must match pattern" +#, python-brace-format +msgid "Reference must match pattern {pattern}" msgstr "" #: InvenTree/validators.py:113 @@ -376,35 +458,35 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241 +#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245 #: build/templates/build/allocation_card.html:23 #: build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:123 -#: build/templates/build/detail.html:31 common/models.py:703 +#: build/templates/build/detail.html:31 common/models.py:705 #: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77 -#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261 -#: order/forms.py:278 order/models.py:603 order/models.py:794 +#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262 +#: order/forms.py:279 order/models.py:614 order/models.py:815 +#: order/templates/order/order_wizard/match_parts.html:29 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:175 #: order/templates/order/sales_order_detail.html:70 #: order/templates/order/sales_order_detail.html:77 -#: order/templates/order/sales_order_detail.html:159 -#: order/templates/order/sales_order_detail.html:224 part/forms.py:342 -#: part/forms.py:371 part/forms.py:387 part/models.py:2178 +#: order/templates/order/sales_order_detail.html:162 +#: order/templates/order/sales_order_detail.html:230 part/forms.py:342 +#: part/forms.py:371 part/forms.py:387 part/models.py:2216 #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 -#: part/templates/part/part_pricing.html:11 -#: part/templates/part/part_pricing.html:18 +#: part/templates/part/part_pricing.html:13 #: part/templates/part/sale_prices.html:85 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 -#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566 -#: stock/templates/stock/item_base.html:244 +#: stock/forms.py:175 stock/forms.py:308 +#: stock/templates/stock/item_base.html:250 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014 -#: templates/js/stock.js:1033 templates/js/stock.js:1271 +#: templates/js/stock.js:1131 templates/js/stock.js:1393 msgid "Quantity" msgstr "" @@ -416,7 +498,7 @@ msgstr "" msgid "Enter quantity for build output" msgstr "" -#: build/forms.py:95 order/forms.py:233 stock/forms.py:118 +#: build/forms.py:95 order/forms.py:234 stock/forms.py:118 msgid "Serial Numbers" msgstr "" @@ -446,11 +528,11 @@ msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 #: order/forms.py:82 stock/forms.py:347 -#: stock/templates/stock/item_base.html:274 +#: stock/templates/stock/item_base.html:280 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:260 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:490 -#: templates/js/stock.js:641 +#: templates/js/stock.js:641 templates/js/stock.js:1023 msgid "Location" msgstr "" @@ -459,12 +541,13 @@ msgid "Location of completed parts" msgstr "" #: build/forms.py:215 build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:59 order/models.py:455 +#: build/templates/build/detail.html:59 order/models.py:466 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252 +#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252 #: templates/js/barcode.js:119 templates/js/build.js:770 #: templates/js/order.js:187 templates/js/order.js:285 -#: templates/js/stock.js:628 templates/js/stock.js:1279 +#: templates/js/stock.js:628 templates/js/stock.js:1100 +#: templates/js/stock.js:1401 msgid "Status" msgstr "" @@ -517,9 +600,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:127 order/models.py:99 order/models.py:605 +#: build/models.py:127 order/models.py:99 order/models.py:616 #: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:219 part/models.py:2187 +#: order/templates/order/sales_order_detail.html:225 part/models.py:2225 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 #: templates/js/build.js:565 templates/js/build.js:1008 @@ -541,16 +624,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:118 -#: build/templates/build/detail.html:26 company/models.py:688 -#: order/models.py:647 order/models.py:679 +#: build/templates/build/detail.html:26 company/models.py:622 +#: order/models.py:658 order/models.py:691 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:131 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:207 part/models.py:321 -#: part/models.py:1876 part/models.py:1888 part/models.py:1906 -#: part/models.py:1981 part/models.py:2077 part/models.py:2162 +#: order/templates/order/sales_order_detail.html:213 part/models.py:321 +#: part/models.py:1914 part/models.py:1926 part/models.py:1944 +#: part/models.py:2019 part/models.py:2115 part/models.py:2200 #: part/templates/part/part_app_base.html:8 -#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29 +#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 @@ -560,7 +643,7 @@ msgstr "" #: templates/js/build.js:741 templates/js/build.js:981 #: templates/js/company.js:140 templates/js/company.js:238 #: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523 -#: templates/js/stock.js:1343 +#: templates/js/stock.js:1465 msgid "Part" msgstr "" @@ -616,7 +699,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:212 stock/models.py:432 +#: build/models.py:212 stock/models.py:464 msgid "Batch Code" msgstr "" @@ -629,7 +712,7 @@ msgstr "" msgid "Creation Date" msgstr "" -#: build/models.py:223 order/models.py:461 +#: build/models.py:223 order/models.py:472 msgid "Target completion date" msgstr "" @@ -667,28 +750,28 @@ msgstr "" #: company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:101 -#: stock/models.py:426 stock/templates/stock/item_base.html:334 +#: stock/models.py:458 stock/templates/stock/item_base.html:340 msgid "External Link" msgstr "" -#: build/models.py:257 part/models.py:744 stock/models.py:428 +#: build/models.py:257 part/models.py:744 stock/models.py:460 msgid "Link to external URL" msgstr "" #: build/models.py:261 build/templates/build/navbar.html:53 -#: company/models.py:135 company/models.py:501 +#: company/models.py:132 company/models.py:498 #: company/templates/company/navbar.html:70 #: company/templates/company/navbar.html:73 order/models.py:123 -#: order/models.py:607 order/templates/order/po_navbar.html:29 +#: order/models.py:618 order/templates/order/po_navbar.html:29 #: order/templates/order/po_navbar.html:32 #: order/templates/order/purchase_order_detail.html:209 -#: order/templates/order/sales_order_detail.html:264 +#: order/templates/order/sales_order_detail.html:278 #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:871 #: part/templates/part/navbar.html:128 #: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377 -#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668 +#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767 #: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37 #: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671 msgid "Notes" @@ -710,75 +793,71 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:838 -msgid "Completed build output" -msgstr "" - -#: build/models.py:1132 +#: build/models.py:1136 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" -#: build/models.py:1157 -msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" - #: build/models.py:1161 -#, python-brace-format -msgid "Selected stock item not found in BOM for part '{p}'" +msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" #: build/models.py:1165 #, python-brace-format +msgid "Selected stock item not found in BOM for part '{p}'" +msgstr "" + +#: build/models.py:1169 +#, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1172 order/models.py:768 +#: build/models.py:1176 order/models.py:789 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1176 order/models.py:771 +#: build/models.py:1180 order/models.py:792 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1180 +#: build/models.py:1184 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1220 stock/templates/stock/item_base.html:306 +#: build/models.py:1224 stock/templates/stock/item_base.html:312 #: templates/InvenTree/search.html:183 templates/js/build.js:714 #: templates/navbar.html:29 msgid "Build" msgstr "" -#: build/models.py:1221 +#: build/models.py:1225 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1228 part/templates/part/allocation.html:18 +#: build/models.py:1232 part/templates/part/allocation.html:18 #: part/templates/part/allocation.html:24 #: part/templates/part/allocation.html:31 #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:93 -#: stock/templates/stock/item_base.html:328 +#: stock/templates/stock/item_base.html:334 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831 -#: templates/js/stock.js:1004 templates/js/stock.js:1262 +#: templates/js/stock.js:1082 templates/js/stock.js:1384 msgid "Stock Item" msgstr "" -#: build/models.py:1229 +#: build/models.py:1233 msgid "Source stock item" msgstr "" -#: build/models.py:1242 +#: build/models.py:1246 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1250 +#: build/models.py:1254 msgid "Install into" msgstr "" -#: build/models.py:1251 +#: build/models.py:1255 msgid "Destination stock item" msgstr "" @@ -812,7 +891,7 @@ msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_manufacturer_part.html:33 -#: company/templates/company/detail_supplier_part.html:32 order/views.py:795 +#: company/templates/company/detail_supplier_part.html:32 order/views.py:986 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "" @@ -832,9 +911,9 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 #: order/templates/order/sales_order_detail.html:75 -#: order/templates/order/sales_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:160 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:420 stock/templates/stock/item_base.html:238 +#: stock/models.py:452 stock/templates/stock/item_base.html:244 #: templates/js/build.js:474 msgid "Serial Number" msgstr "" @@ -897,7 +976,7 @@ msgstr "" #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 #: part/templates/part/category.html:18 part/templates/part/part_base.html:29 -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:124 #: stock/templates/stock/location.html:31 msgid "Admin view" msgstr "" @@ -908,8 +987,8 @@ msgstr "" #: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:86 -#: templates/js/table_filters.js:240 templates/js/table_filters.js:259 -#: templates/js/table_filters.js:276 +#: templates/js/table_filters.js:241 templates/js/table_filters.js:260 +#: templates/js/table_filters.js:277 msgid "Overdue" msgstr "" @@ -955,14 +1034,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:84 order/models.py:677 +#: build/templates/build/detail.html:84 order/models.py:689 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:268 templates/js/order.js:245 +#: stock/templates/stock/item_base.html:274 templates/js/order.js:245 msgid "Sales Order" msgstr "" @@ -1112,9 +1191,9 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636 -#: templates/js/stock.js:1286 templates/js/table_filters.js:107 -#: templates/js/table_filters.js:201 +#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636 +#: templates/js/stock.js:1408 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:202 msgid "Batch" msgstr "" @@ -1168,6 +1247,7 @@ msgstr "" #: company/templates/company/navbar.html:15 #: order/templates/order/po_navbar.html:14 #: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 +#: templates/js/stock.js:1016 msgid "Details" msgstr "" @@ -1202,7 +1282,8 @@ msgstr "" #: build/templates/build/notes.html:26 company/templates/company/notes.html:24 #: order/templates/order/order_notes.html:27 #: order/templates/order/sales_order_notes.html:29 -#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470 +#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477 +#: stock/templates/stock/item_base.html:487 #: stock/templates/stock/item_notes.html:26 msgid "Save" msgstr "" @@ -1231,7 +1312,7 @@ msgstr "" msgid "Maximum output quantity is " msgstr "" -#: build/views.py:184 stock/models.py:969 stock/views.py:1789 +#: build/views.py:184 stock/views.py:1821 msgid "Serial numbers already exist" msgstr "" @@ -1348,372 +1429,405 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172 +#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" -#: build/views.py:1119 order/views.py:189 order/views.py:210 +#: build/views.py:1119 order/views.py:194 order/views.py:215 msgid "Edit Attachment" msgstr "" -#: build/views.py:1129 order/views.py:193 order/views.py:214 +#: build/views.py:1129 order/views.py:198 order/views.py:219 msgid "Attachment updated" msgstr "" -#: build/views.py:1139 order/views.py:229 order/views.py:243 +#: build/views.py:1139 order/views.py:234 order/views.py:248 msgid "Delete Attachment" msgstr "" -#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333 +#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333 msgid "Deleted attachment" msgstr "" -#: common/models.py:56 -msgid "InvenTree Instance Name" +#: common/files.py:64 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:71 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:73 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:38 templates/attachment_table.html:15 +msgid "File" +msgstr "" + +#: common/forms.py:39 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:54 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:55 +#, python-brace-format +msgid "Select {name} file to upload" msgstr "" #: common/models.py:58 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:60 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:62 +#: common/models.py:64 msgid "Use instance name" msgstr "" -#: common/models.py:63 +#: common/models.py:65 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:69 company/models.py:97 company/models.py:98 +#: common/models.py:71 company/models.py:94 company/models.py:95 msgid "Company name" msgstr "" -#: common/models.py:70 +#: common/models.py:72 msgid "Internal company name" msgstr "" -#: common/models.py:75 +#: common/models.py:77 msgid "Base URL" msgstr "" -#: common/models.py:76 +#: common/models.py:78 msgid "Base URL for server instance" msgstr "" -#: common/models.py:82 +#: common/models.py:84 msgid "Default Currency" msgstr "" -#: common/models.py:83 +#: common/models.py:85 msgid "Default currency" msgstr "" -#: common/models.py:89 +#: common/models.py:91 msgid "Download from URL" msgstr "" -#: common/models.py:90 +#: common/models.py:92 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:96 +#: common/models.py:98 msgid "Barcode Support" msgstr "" -#: common/models.py:97 +#: common/models.py:99 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:103 +#: common/models.py:105 msgid "IPN Regex" msgstr "" -#: common/models.py:104 +#: common/models.py:106 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:108 +#: common/models.py:110 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:109 +#: common/models.py:111 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:115 +#: common/models.py:117 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:116 +#: common/models.py:118 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:122 +#: common/models.py:124 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:123 +#: common/models.py:125 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:129 +#: common/models.py:131 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:130 +#: common/models.py:132 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:136 +#: common/models.py:138 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:137 +#: common/models.py:139 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:143 +#: common/models.py:145 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:144 +#: common/models.py:146 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:150 +#: common/models.py:152 msgid "Recent Part Count" msgstr "" -#: common/models.py:151 +#: common/models.py:153 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160 -#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:310 +#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25 +#: templates/js/table_filters.js:311 msgid "Template" msgstr "" -#: common/models.py:158 +#: common/models.py:160 msgid "Parts are templates by default" msgstr "" -#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:123 templates/js/table_filters.js:322 +#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:124 templates/js/table_filters.js:323 msgid "Assembly" msgstr "" -#: common/models.py:165 +#: common/models.py:167 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:326 +#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:327 msgid "Component" msgstr "" -#: common/models.py:172 +#: common/models.py:174 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200 +#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "" -#: common/models.py:179 +#: common/models.py:181 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:334 +#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:335 msgid "Salable" msgstr "" -#: common/models.py:186 +#: common/models.py:188 msgid "Parts are salable by default" msgstr "" -#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:338 +#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:33 templates/js/table_filters.js:339 msgid "Trackable" msgstr "" -#: common/models.py:193 +#: common/models.py:195 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150 -#: templates/js/table_filters.js:28 +#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150 +#: templates/js/table_filters.js:29 msgid "Virtual" msgstr "" -#: common/models.py:200 +#: common/models.py:202 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:206 +#: common/models.py:208 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:207 +#: common/models.py:209 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:213 +#: common/models.py:215 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:214 +#: common/models.py:216 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:220 +#: common/models.py:222 msgid "Page Size" msgstr "" -#: common/models.py:221 +#: common/models.py:223 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:231 +#: common/models.py:233 msgid "Test Reports" msgstr "" -#: common/models.py:232 +#: common/models.py:234 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:238 +#: common/models.py:240 msgid "Stock Expiry" msgstr "" -#: common/models.py:239 +#: common/models.py:241 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:245 +#: common/models.py:247 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:246 +#: common/models.py:248 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:252 +#: common/models.py:254 msgid "Stock Stale Time" msgstr "" -#: common/models.py:253 +#: common/models.py:255 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:255 part/templates/part/detail.html:121 +#: common/models.py:257 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:260 +#: common/models.py:262 msgid "Build Expired Stock" msgstr "" -#: common/models.py:261 +#: common/models.py:263 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:267 +#: common/models.py:269 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:268 +#: common/models.py:270 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:274 +#: common/models.py:276 msgid "Group by Part" msgstr "" -#: common/models.py:275 +#: common/models.py:277 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:281 +#: common/models.py:283 msgid "Recent Stock Count" msgstr "" -#: common/models.py:282 +#: common/models.py:284 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:288 +#: common/models.py:290 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:289 +#: common/models.py:291 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:294 +#: common/models.py:296 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:295 +#: common/models.py:297 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:299 +#: common/models.py:301 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:300 +#: common/models.py:302 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:305 +#: common/models.py:307 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:306 +#: common/models.py:308 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:529 +#: common/models.py:531 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:531 +#: common/models.py:533 msgid "Settings value" msgstr "" -#: common/models.py:566 +#: common/models.py:568 msgid "Must be an integer value" msgstr "" -#: common/models.py:589 +#: common/models.py:591 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:600 +#: common/models.py:602 msgid "Value must be an integer value" msgstr "" -#: common/models.py:623 +#: common/models.py:625 msgid "Key string must be unique" msgstr "" -#: common/models.py:704 company/forms.py:177 +#: common/models.py:706 company/forms.py:177 msgid "Price break quantity" msgstr "" -#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:713 +#: common/models.py:715 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:736 +#: common/models.py:804 msgid "Default" msgstr "" @@ -1721,24 +1835,42 @@ msgstr "" msgid "Current value" msgstr "" -#: common/views.py:25 +#: common/views.py:32 msgid "Change Setting" msgstr "" -#: common/views.py:94 +#: common/views.py:101 msgid "Supplied value is not allowed" msgstr "" -#: common/views.py:103 +#: common/views.py:110 msgid "Supplied value must be a boolean" msgstr "" -#: company/forms.py:38 company/models.py:145 +#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42 +#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27 +msgid "Upload File" +msgstr "" + +#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58 +msgid "Match Fields" +msgstr "" + +#: common/views.py:186 +msgid "Match Items" +msgstr "" + +#: common/views.py:479 +msgid "Fields matching failed" +msgstr "" + +#: company/forms.py:38 company/models.py:142 #: company/templates/company/detail.html:42 msgid "Currency" msgstr "" -#: company/forms.py:39 company/models.py:147 +#: company/forms.py:39 company/models.py:144 msgid "Default currency used for this company" msgstr "" @@ -1758,216 +1890,216 @@ msgstr "" msgid "Single quantity price" msgstr "" -#: company/forms.py:128 company/models.py:324 +#: company/forms.py:128 company/models.py:321 msgid "Select manufacturer" msgstr "" -#: company/forms.py:134 company/models.py:331 +#: company/forms.py:134 company/models.py:328 msgid "Manufacturer Part Number" msgstr "" -#: company/forms.py:136 company/models.py:330 +#: company/forms.py:136 company/models.py:327 #: company/templates/company/manufacturer_part_base.html:89 #: company/templates/company/manufacturer_part_detail.html:26 -#: company/templates/company/supplier_part_base.html:101 +#: company/templates/company/supplier_part_base.html:102 #: company/templates/company/supplier_part_detail.html:35 #: order/templates/order/purchase_order_detail.html:158 part/bom.py:171 #: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307 msgid "MPN" msgstr "" -#: company/models.py:102 +#: company/models.py:99 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:100 msgid "Description of the company" msgstr "" -#: company/models.py:107 company/templates/company/company_base.html:70 +#: company/models.py:104 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:33 templates/js/company.js:60 msgid "Website" msgstr "" -#: company/models.py:107 +#: company/models.py:104 msgid "Company website URL" msgstr "" -#: company/models.py:110 company/templates/company/company_base.html:77 +#: company/models.py:107 company/templates/company/company_base.html:77 msgid "Address" msgstr "" -#: company/models.py:111 +#: company/models.py:108 msgid "Company address" msgstr "" -#: company/models.py:114 +#: company/models.py:111 msgid "Phone number" msgstr "" -#: company/models.py:115 +#: company/models.py:112 msgid "Contact phone number" msgstr "" -#: company/models.py:118 company/templates/company/company_base.html:91 +#: company/models.py:115 company/templates/company/company_base.html:91 msgid "Email" msgstr "" -#: company/models.py:118 +#: company/models.py:115 msgid "Contact email address" msgstr "" -#: company/models.py:121 company/templates/company/company_base.html:98 +#: company/models.py:118 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" -#: company/models.py:122 +#: company/models.py:119 msgid "Point of contact" msgstr "" -#: company/models.py:124 company/models.py:336 company/models.py:488 +#: company/models.py:121 company/models.py:333 company/models.py:485 #: order/models.py:103 part/models.py:743 #: report/templates/report/inventree_build_order_base.html:165 -#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318 +#: templates/js/company.js:188 templates/js/company.js:318 #: templates/js/part.js:431 msgid "Link" msgstr "" -#: company/models.py:124 +#: company/models.py:121 msgid "Link to external company information" msgstr "" -#: company/models.py:132 part/models.py:753 +#: company/models.py:129 part/models.py:753 msgid "Image" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "is customer" msgstr "" -#: company/models.py:137 +#: company/models.py:134 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "is supplier" msgstr "" -#: company/models.py:139 +#: company/models.py:136 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "is manufacturer" msgstr "" -#: company/models.py:141 +#: company/models.py:138 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:308 company/models.py:459 stock/models.py:373 -#: stock/templates/stock/item_base.html:224 +#: company/models.py:305 company/models.py:456 stock/models.py:405 +#: stock/templates/stock/item_base.html:230 msgid "Base Part" msgstr "" -#: company/models.py:312 company/models.py:463 order/views.py:1384 +#: company/models.py:309 company/models.py:460 order/views.py:1587 msgid "Select part" msgstr "" -#: company/models.py:323 company/templates/company/detail.html:57 +#: company/models.py:320 company/templates/company/detail.html:57 #: company/templates/company/manufacturer_part_base.html:85 #: company/templates/company/manufacturer_part_detail.html:25 #: company/templates/company/supplier_part_base.html:94 #: company/templates/company/supplier_part_detail.html:34 part/bom.py:170 -#: part/bom.py:241 stock/templates/stock/item_base.html:341 +#: part/bom.py:241 stock/templates/stock/item_base.html:347 #: templates/js/company.js:44 templates/js/company.js:165 #: templates/js/company.js:289 msgid "Manufacturer" msgstr "" -#: company/models.py:337 +#: company/models.py:334 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:343 +#: company/models.py:340 msgid "Manufacturer part description" msgstr "" -#: company/models.py:469 company/templates/company/detail.html:62 +#: company/models.py:466 company/templates/company/detail.html:62 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:25 order/models.py:190 #: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175 -#: part/bom.py:286 stock/templates/stock/item_base.html:353 +#: part/bom.py:286 stock/templates/stock/item_base.html:359 #: templates/js/company.js:48 templates/js/company.js:263 #: templates/js/order.js:170 msgid "Supplier" msgstr "" -#: company/models.py:470 +#: company/models.py:467 msgid "Select supplier" msgstr "" -#: company/models.py:475 company/templates/company/supplier_part_base.html:88 +#: company/models.py:472 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:26 #: order/templates/order/purchase_order_detail.html:149 part/bom.py:176 #: part/bom.py:287 msgid "SKU" msgstr "" -#: company/models.py:476 +#: company/models.py:473 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:482 +#: company/models.py:479 #: company/templates/company/manufacturer_part_base.html:6 #: company/templates/company/manufacturer_part_base.html:19 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:352 msgid "Manufacturer Part" msgstr "" -#: company/models.py:483 +#: company/models.py:480 msgid "Select manufacturer part" msgstr "" -#: company/models.py:489 +#: company/models.py:486 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:495 +#: company/models.py:492 msgid "Supplier part description" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part_base.html:115 -#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190 +#: company/models.py:497 company/templates/company/supplier_part_base.html:116 +#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "base cost" msgstr "" -#: company/models.py:504 +#: company/models.py:501 part/models.py:1614 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:506 company/templates/company/supplier_part_base.html:108 -#: stock/models.py:397 stock/templates/stock/item_base.html:299 +#: company/models.py:503 company/templates/company/supplier_part_base.html:109 +#: stock/models.py:429 stock/templates/stock/item_base.html:305 #: templates/js/stock.js:667 msgid "Packaging" msgstr "" -#: company/models.py:506 +#: company/models.py:503 msgid "Part packaging" msgstr "" -#: company/models.py:508 +#: company/models.py:505 part/models.py:1616 msgid "multiple" msgstr "" -#: company/models.py:508 +#: company/models.py:505 msgid "Order multiple" msgstr "" @@ -1993,7 +2125,7 @@ msgstr "" msgid "Download image from URL" msgstr "" -#: company/templates/company/company_base.html:46 order/views.py:306 +#: company/templates/company/company_base.html:46 order/views.py:311 msgid "Create Purchase Order" msgstr "" @@ -2022,8 +2154,7 @@ msgstr "" #: company/templates/company/delete.html:12 #, python-format -msgid "" -"There are %(count)s parts sourced from this company.
\n" +msgid "There are %(count)s parts sourced from this company.
\n" "If this supplier is deleted, these supplier part entries will also be deleted." msgstr "" @@ -2039,10 +2170,11 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/detail.html:67 order/models.py:450 -#: order/templates/order/sales_order_base.html:92 stock/models.py:415 -#: stock/models.py:416 stock/templates/stock/item_base.html:251 +#: company/templates/company/detail.html:67 order/models.py:461 +#: order/templates/order/sales_order_base.html:92 stock/models.py:447 +#: stock/models.py:448 stock/templates/stock/item_base.html:257 #: templates/js/company.js:40 templates/js/order.js:267 +#: templates/js/stock.js:1064 msgid "Customer" msgstr "" @@ -2088,7 +2220,7 @@ msgstr "" #: company/templates/company/detail_manufacturer_part.html:66 #: company/templates/company/detail_supplier_part.html:66 #: part/templates/part/bom.html:159 part/templates/part/category.html:118 -#: templates/js/stock.js:1157 +#: templates/js/stock.js:1279 msgid "New Part" msgstr "" @@ -2135,19 +2267,19 @@ msgstr "" #: company/templates/company/detail_supplier_part.html:22 #: company/templates/company/manufacturer_part_suppliers.html:17 #: order/templates/order/purchase_order_detail.html:49 -#: part/templates/part/supplier.html:17 templates/js/stock.js:1163 +#: part/templates/part/supplier.html:17 templates/js/stock.js:1285 msgid "New Supplier Part" msgstr "" #: company/templates/company/detail_supplier_part.html:72 #: company/templates/company/manufacturer_part_suppliers.html:47 -#: company/views.py:64 order/templates/order/purchase_orders.html:183 +#: company/views.py:64 order/templates/order/purchase_orders.html:185 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" #: company/templates/company/detail_supplier_part.html:73 company/views.py:281 -#: order/templates/order/purchase_orders.html:184 +#: order/templates/order/purchase_orders.html:186 msgid "Create new Supplier" msgstr "" @@ -2205,7 +2337,7 @@ msgstr "" #: company/templates/company/manufacturer_part_navbar.html:22 #: company/templates/company/navbar.html:41 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:36 stock/api.py:51 +#: part/templates/part/navbar.html:36 stock/api.py:54 #: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196 @@ -2258,7 +2390,7 @@ msgstr "" #: stock/templates/stock/location_navbar.html:22 #: stock/templates/stock/location_navbar.html:29 #: templates/InvenTree/search.html:198 templates/js/stock.js:968 -#: templates/stats.html:72 templates/stats.html:81 users/models.py:42 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:42 msgid "Stock Items" msgstr "" @@ -2313,8 +2445,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:7 -#: company/templates/company/supplier_part_base.html:20 stock/models.py:382 -#: stock/templates/stock/item_base.html:358 templates/js/company.js:279 +#: company/templates/company/supplier_part_base.html:20 stock/models.py:414 +#: stock/templates/stock/item_base.html:364 templates/js/company.js:279 msgid "Supplier Part" msgstr "" @@ -2363,7 +2495,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:19 company/views.py:794 -#: part/templates/part/sale_prices.html:17 part/views.py:2636 +#: part/templates/part/sale_prices.html:17 part/views.py:2644 msgid "Add Price Break" msgstr "" @@ -2393,7 +2525,7 @@ msgstr "" msgid "Customers" msgstr "" -#: company/views.py:78 order/templates/order/sales_orders.html:185 +#: company/views.py:78 order/templates/order/sales_orders.html:187 msgid "New Customer" msgstr "" @@ -2413,6 +2545,11 @@ msgstr "" msgid "Image size exceeds maximum allowable size for download" msgstr "" +#: company/views.py:205 part/views.py:887 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + #: company/views.py:214 part/views.py:896 msgid "Supplied URL is not a valid image file" msgstr "" @@ -2433,7 +2570,7 @@ msgstr "" msgid "Edited company information" msgstr "" -#: company/views.py:287 order/templates/order/sales_orders.html:186 +#: company/views.py:287 order/templates/order/sales_orders.html:188 msgid "Create new Customer" msgstr "" @@ -2465,7 +2602,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:578 templates/js/stock.js:1164 +#: company/views.py:578 templates/js/stock.js:1286 msgid "Create new Supplier Part" msgstr "" @@ -2473,15 +2610,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:799 part/views.py:2640 +#: company/views.py:799 part/views.py:2648 msgid "Added new price break" msgstr "" -#: company/views.py:855 part/views.py:2684 +#: company/views.py:855 part/views.py:2692 msgid "Edit Price Break" msgstr "" -#: company/views.py:870 part/views.py:2698 +#: company/views.py:870 part/views.py:2706 msgid "Delete Price Break" msgstr "" @@ -2489,51 +2626,59 @@ msgstr "" msgid "No valid objects provided to template" msgstr "" -#: label/models.py:102 +#: label/models.py:103 msgid "Label name" msgstr "" -#: label/models.py:109 +#: label/models.py:110 msgid "Label description" msgstr "" -#: label/models.py:116 stock/forms.py:202 +#: label/models.py:117 stock/forms.py:202 msgid "Label" msgstr "" -#: label/models.py:117 +#: label/models.py:118 msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:274 +#: label/models.py:124 report/models.py:274 msgid "Enabled" msgstr "" -#: label/models.py:124 +#: label/models.py:125 msgid "Label template is enabled" msgstr "" -#: label/models.py:129 +#: label/models.py:130 msgid "Width [mm]" msgstr "" -#: label/models.py:130 +#: label/models.py:131 msgid "Label width, specified in mm" msgstr "" -#: label/models.py:136 +#: label/models.py:137 msgid "Height [mm]" msgstr "" -#: label/models.py:137 +#: label/models.py:138 msgid "Label height, specified in mm" msgstr "" -#: label/models.py:222 label/models.py:275 +#: label/models.py:144 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:145 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:244 label/models.py:297 msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:276 report/models.py:294 +#: label/models.py:245 label/models.py:298 report/models.py:294 #: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" @@ -2571,15 +2716,15 @@ msgstr "" msgid "Enter sales order number" msgstr "" -#: order/forms.py:145 order/models.py:462 +#: order/forms.py:145 order/models.py:473 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/forms.py:235 +#: order/forms.py:236 msgid "Enter stock item serial numbers" msgstr "" -#: order/forms.py:241 +#: order/forms.py:242 msgid "Enter quantity of stock items" msgstr "" @@ -2607,7 +2752,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:182 order/models.py:455 +#: order/models.py:182 order/models.py:466 msgid "Purchase order status" msgstr "" @@ -2648,8 +2793,8 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:243 part/views.py:1586 stock/models.py:270 -#: stock/models.py:953 +#: order/models.py:243 part/views.py:1586 stock/models.py:302 +#: stock/models.py:1018 msgid "Quantity must be greater than zero" msgstr "" @@ -2657,128 +2802,134 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:344 +#: order/models.py:346 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:348 +#: order/models.py:350 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:350 +#: order/models.py:352 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:369 -msgid "Received items" -msgstr "" - -#: order/models.py:451 +#: order/models.py:462 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer Reference " msgstr "" -#: order/models.py:457 +#: order/models.py:468 msgid "Customer order reference code" msgstr "" -#: order/models.py:465 templates/js/order.js:303 +#: order/models.py:476 templates/js/order.js:303 msgid "Shipment Date" msgstr "" -#: order/models.py:472 +#: order/models.py:483 msgid "shipped by" msgstr "" -#: order/models.py:516 +#: order/models.py:527 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:603 +#: order/models.py:614 msgid "Item quantity" msgstr "" -#: order/models.py:605 +#: order/models.py:616 msgid "Line item reference" msgstr "" -#: order/models.py:607 +#: order/models.py:618 msgid "Line item notes" msgstr "" -#: order/models.py:633 order/models.py:677 +#: order/models.py:644 order/models.py:689 #: part/templates/part/allocation.html:17 #: part/templates/part/allocation.html:45 msgid "Order" msgstr "" -#: order/models.py:634 order/templates/order/order_base.html:9 +#: order/models.py:645 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:313 templates/js/order.js:148 +#: stock/templates/stock/item_base.html:319 templates/js/order.js:148 +#: templates/js/stock.js:1045 msgid "Purchase Order" msgstr "" -#: order/models.py:648 +#: order/models.py:659 msgid "Supplier part" msgstr "" -#: order/models.py:651 order/templates/order/order_base.html:131 +#: order/models.py:662 order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:189 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" -#: order/models.py:651 +#: order/models.py:662 msgid "Number of items received" msgstr "" -#: order/models.py:658 stock/models.py:508 -#: stock/templates/stock/item_base.html:320 +#: order/models.py:669 stock/models.py:540 +#: stock/templates/stock/item_base.html:326 msgid "Purchase Price" msgstr "" -#: order/models.py:659 +#: order/models.py:670 msgid "Unit purchase price" msgstr "" -#: order/models.py:753 order/models.py:755 +#: order/models.py:698 part/templates/part/navbar.html:95 +#: part/templates/part/part_pricing.html:78 +msgid "Sale Price" +msgstr "" + +#: order/models.py:699 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:774 order/models.py:776 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:759 +#: order/models.py:780 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:761 +#: order/models.py:782 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:764 +#: order/models.py:785 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:774 +#: order/models.py:795 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:779 +#: order/models.py:800 msgid "Line" msgstr "" -#: order/models.py:790 +#: order/models.py:811 msgid "Item" msgstr "" -#: order/models.py:791 +#: order/models.py:812 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:794 +#: order/models.py:815 msgid "Enter stock allocation quantity" msgstr "" @@ -2830,7 +2981,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:100 #: part/templates/part/category.html:185 part/templates/part/category.html:227 #: stock/templates/stock/location.html:191 templates/js/stock.js:708 -#: templates/js/stock.js:1169 +#: templates/js/stock.js:1291 msgid "New Location" msgstr "" @@ -2864,6 +3015,75 @@ msgstr "" msgid "Order Notes" msgstr "" +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/select_fields.html:21 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:18 +#: order/templates/order/order_wizard/po_upload.html:40 +msgid "Previous Step" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:20 +#: part/templates/part/bom_upload/select_fields.html:32 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/select_fields.html:41 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/select_fields.html:47 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:51 +#: part/templates/part/bom_upload/select_fields.html:76 +#: part/templates/part/bom_upload/select_parts.html:58 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:11 +#: part/templates/part/bom_upload/select_parts.html:21 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:27 +#: part/templates/part/bom_upload/select_parts.html:39 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:11 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:18 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:48 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" msgstr "" @@ -2936,8 +3156,8 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:24 -#: order/templates/order/sales_order_detail.html:22 order/views.py:1120 -#: order/views.py:1203 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1311 +#: order/views.py:1394 msgid "Add Line Item" msgstr "" @@ -2946,11 +3166,12 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/sales_order_detail.html:235 msgid "Unit Price" msgstr "" #: order/templates/order/purchase_order_detail.html:221 -#: order/templates/order/sales_order_detail.html:294 +#: order/templates/order/sales_order_detail.html:328 msgid "Edit line item" msgstr "" @@ -2980,7 +3201,7 @@ msgstr "" #: part/templates/part/category_partlist.html:10 #: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577 -#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68 +#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89 #: users/models.py:40 msgid "Parts" msgstr "" @@ -3042,59 +3263,72 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342 +#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342 #: templates/js/build.js:627 templates/js/build.js:1044 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515 +#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515 #: templates/js/build.js:849 msgid "Edit stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517 +#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517 #: templates/js/build.js:850 msgid "Delete stock allocation" msgstr "" -#: order/templates/order/sales_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:176 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:199 +#: order/templates/order/sales_order_detail.html:205 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579 +#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579 #: templates/js/build.js:845 msgid "Allocated" msgstr "" -#: order/templates/order/sales_order_detail.html:231 +#: order/templates/order/sales_order_detail.html:245 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:279 +#: order/templates/order/sales_order_detail.html:282 +msgid "PO" +msgstr "" + +#: order/templates/order/sales_order_detail.html:312 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641 +#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641 msgid "Allocate stock" msgstr "" -#: order/templates/order/sales_order_detail.html:285 +#: order/templates/order/sales_order_detail.html:318 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634 +#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634 #: templates/js/build.js:1052 msgid "Build stock" msgstr "" -#: order/templates/order/sales_order_detail.html:295 +#: order/templates/order/sales_order_detail.html:325 +#: order/templates/order/sales_order_detail.html:434 +msgid "Calculate price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:329 msgid "Delete line item " msgstr "" +#: order/templates/order/sales_order_detail.html:440 +msgid "Update Unit Price" +msgstr "" + #: order/templates/order/sales_order_notes.html:14 msgid "Sales Order Notes" msgstr "" @@ -3136,164 +3370,189 @@ msgstr "" msgid "Are you sure you wish to delete this line item?" msgstr "" -#: order/views.py:99 +#: order/views.py:104 msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:149 +#: order/views.py:154 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:341 +#: order/views.py:346 msgid "Create Sales Order" msgstr "" -#: order/views.py:376 +#: order/views.py:381 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:396 +#: order/views.py:401 msgid "Edit Sales Order" msgstr "" -#: order/views.py:412 +#: order/views.py:417 msgid "Cancel Order" msgstr "" -#: order/views.py:421 order/views.py:447 +#: order/views.py:426 order/views.py:452 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:424 order/views.py:450 +#: order/views.py:429 order/views.py:455 msgid "Order cannot be cancelled" msgstr "" -#: order/views.py:438 +#: order/views.py:443 msgid "Cancel sales order" msgstr "" -#: order/views.py:464 +#: order/views.py:469 msgid "Issue Order" msgstr "" -#: order/views.py:473 +#: order/views.py:478 msgid "Confirm order placement" msgstr "" -#: order/views.py:483 +#: order/views.py:488 msgid "Purchase order issued" msgstr "" -#: order/views.py:494 +#: order/views.py:499 msgid "Complete Order" msgstr "" -#: order/views.py:510 +#: order/views.py:515 msgid "Confirm order completion" msgstr "" -#: order/views.py:521 +#: order/views.py:526 msgid "Purchase order completed" msgstr "" -#: order/views.py:531 +#: order/views.py:536 msgid "Ship Order" msgstr "" -#: order/views.py:547 +#: order/views.py:552 msgid "Confirm order shipment" msgstr "" -#: order/views.py:553 +#: order/views.py:558 msgid "Could not ship order" msgstr "" -#: order/views.py:607 +#: order/views.py:584 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:798 msgid "Receive Parts" msgstr "" -#: order/views.py:677 +#: order/views.py:868 msgid "Items received" msgstr "" -#: order/views.py:691 +#: order/views.py:882 msgid "No destination set" msgstr "" -#: order/views.py:736 +#: order/views.py:927 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:742 +#: order/views.py:933 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:748 +#: order/views.py:939 msgid "No lines specified" msgstr "" -#: order/views.py:1069 +#: order/views.py:1260 #, python-brace-format msgid "Ordered {n} parts" msgstr "" -#: order/views.py:1129 +#: order/views.py:1320 msgid "Supplier part must be specified" msgstr "" -#: order/views.py:1135 +#: order/views.py:1326 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1254 order/views.py:1272 +#: order/views.py:1457 order/views.py:1475 msgid "Edit Line Item" msgstr "" -#: order/views.py:1288 order/views.py:1300 +#: order/views.py:1491 order/views.py:1503 msgid "Delete Line Item" msgstr "" -#: order/views.py:1293 order/views.py:1305 +#: order/views.py:1496 order/views.py:1508 msgid "Deleted line item" msgstr "" -#: order/views.py:1318 +#: order/views.py:1521 msgid "Allocate Serial Numbers" msgstr "" -#: order/views.py:1363 +#: order/views.py:1566 #, python-brace-format msgid "Allocated {n} items" msgstr "" -#: order/views.py:1379 +#: order/views.py:1582 msgid "Select line item" msgstr "" -#: order/views.py:1410 -msgid "No matching item for serial" +#: order/views.py:1613 +#, python-brace-format +msgid "No matching item for serial {serial}" msgstr "" -#: order/views.py:1420 -msgid "is not in stock" +#: order/views.py:1623 +#, python-brace-format +msgid "{serial} is not in stock" msgstr "" -#: order/views.py:1428 -msgid "already allocated to an order" +#: order/views.py:1631 +#, python-brace-format +msgid "{serial} already allocated to an order" msgstr "" -#: order/views.py:1482 +#: order/views.py:1685 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1556 +#: order/views.py:1759 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1571 +#: order/views.py:1774 msgid "Remove allocation" msgstr "" +#: order/views.py:1846 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1852 +msgid "Price not found" +msgstr "" + +#: order/views.py:1855 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1860 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + #: part/bom.py:138 part/models.py:72 part/models.py:762 #: part/templates/part/category.html:66 part/templates/part/detail.html:90 msgid "Default Location" @@ -3372,7 +3631,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:122 part/models.py:2077 +#: part/forms.py:122 part/models.py:2115 msgid "Parent Part" msgstr "" @@ -3448,7 +3707,7 @@ msgstr "" msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:344 part/models.py:2171 +#: part/forms.py:344 part/models.py:2209 msgid "Sub part" msgstr "" @@ -3468,14 +3727,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:82 part/models.py:2123 +#: part/models.py:82 part/models.py:2161 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:83 part/templates/part/category.html:23 #: part/templates/part/category.html:94 part/templates/part/category.html:141 -#: templates/InvenTree/search.html:127 templates/stats.html:63 +#: templates/InvenTree/search.html:127 templates/stats.html:84 #: users/models.py:39 msgid "Part Categories" msgstr "" @@ -3538,7 +3797,7 @@ msgstr "" msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73 +#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73 #: part/templates/part/set_category.html:15 templates/js/part.js:385 msgid "Category" msgstr "" @@ -3593,7 +3852,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106 +#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106 #: part/templates/part/params.html:29 msgid "Units" msgstr "" @@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?" msgstr "" #: part/models.py:861 part/templates/part/detail.html:227 -#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:236 templates/js/table_filters.js:305 +#: templates/js/table_filters.js:21 templates/js/table_filters.js:61 +#: templates/js/table_filters.js:237 templates/js/table_filters.js:306 msgid "Active" msgstr "" @@ -3660,167 +3919,171 @@ msgstr "" msgid "Creation User" msgstr "" -#: part/models.py:1949 -msgid "Test templates can only be created for trackable parts" -msgstr "" - -#: part/models.py:1966 -msgid "Test with this name already exists for this part" -msgstr "" - -#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104 -msgid "Test Name" +#: part/models.py:1616 +msgid "Sell multiple" msgstr "" #: part/models.py:1987 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2004 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104 +msgid "Test Name" +msgstr "" + +#: part/models.py:2025 msgid "Enter a name for the test" msgstr "" -#: part/models.py:1992 +#: part/models.py:2030 msgid "Test Description" msgstr "" -#: part/models.py:1993 +#: part/models.py:2031 msgid "Enter description for this test" msgstr "" -#: part/models.py:1998 templates/js/part.js:647 -#: templates/js/table_filters.js:222 +#: part/models.py:2036 templates/js/part.js:647 +#: templates/js/table_filters.js:223 msgid "Required" msgstr "" -#: part/models.py:1999 +#: part/models.py:2037 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2004 templates/js/part.js:655 +#: part/models.py:2042 templates/js/part.js:655 msgid "Requires Value" msgstr "" -#: part/models.py:2005 +#: part/models.py:2043 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2010 templates/js/part.js:662 +#: part/models.py:2048 templates/js/part.js:662 msgid "Requires Attachment" msgstr "" -#: part/models.py:2011 +#: part/models.py:2049 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2044 +#: part/models.py:2082 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2049 +#: part/models.py:2087 msgid "Parameter Name" msgstr "" -#: part/models.py:2051 +#: part/models.py:2089 msgid "Parameter Units" msgstr "" -#: part/models.py:2079 part/models.py:2128 part/models.py:2129 +#: part/models.py:2117 part/models.py:2166 part/models.py:2167 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Data" msgstr "" -#: part/models.py:2081 +#: part/models.py:2119 msgid "Parameter Value" msgstr "" -#: part/models.py:2133 templates/InvenTree/settings/category.html:67 +#: part/models.py:2171 templates/InvenTree/settings/category.html:67 msgid "Default Value" msgstr "" -#: part/models.py:2134 +#: part/models.py:2172 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2163 +#: part/models.py:2201 msgid "Select parent part" msgstr "" -#: part/models.py:2172 +#: part/models.py:2210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2178 +#: part/models.py:2216 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269 +#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269 msgid "Optional" msgstr "" -#: part/models.py:2180 +#: part/models.py:2218 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2183 +#: part/models.py:2221 msgid "Overage" msgstr "" -#: part/models.py:2184 +#: part/models.py:2222 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2187 +#: part/models.py:2225 msgid "BOM item reference" msgstr "" -#: part/models.py:2190 +#: part/models.py:2228 msgid "BOM item notes" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "Checksum" msgstr "" -#: part/models.py:2192 +#: part/models.py:2230 msgid "BOM line checksum" msgstr "" -#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286 -#: templates/js/table_filters.js:50 +#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286 +#: templates/js/table_filters.js:51 msgid "Inherited" msgstr "" -#: part/models.py:2197 +#: part/models.py:2235 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2273 part/views.py:1592 part/views.py:1644 -#: stock/models.py:260 +#: part/models.py:2311 part/views.py:1592 part/views.py:1644 +#: stock/models.py:292 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2282 part/models.py:2284 +#: part/models.py:2320 part/models.py:2322 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2287 +#: part/models.py:2325 msgid "BOM Item" msgstr "" -#: part/models.py:2404 +#: part/models.py:2442 msgid "Part 1" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Part 2" msgstr "" -#: part/models.py:2408 +#: part/models.py:2446 msgid "Select Related Part" msgstr "" -#: part/models.py:2440 +#: part/models.py:2478 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted" msgstr "" #: part/templates/part/bom.html:160 part/views.py:584 -#: templates/js/stock.js:1158 +#: templates/js/stock.js:1280 msgid "Create New Part" msgstr "" @@ -3923,51 +4186,18 @@ msgstr "" msgid "Step 2 - Select Fields" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:21 -msgid "Missing selections for the following required columns" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:32 -msgid "Submit Selections" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:41 -msgid "File Fields" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:47 -msgid "Remove column" -msgstr "" - -#: part/templates/part/bom_upload/select_fields.html:58 -msgid "Match Fields" -msgstr "" - #: part/templates/part/bom_upload/select_fields.html:68 msgid "Duplicate column selection" msgstr "" -#: part/templates/part/bom_upload/select_fields.html:76 -#: part/templates/part/bom_upload/select_parts.html:58 -msgid "Remove row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:21 -msgid "Errors exist in the submitted data" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:27 msgid "Submit BOM" msgstr "" -#: part/templates/part/bom_upload/select_parts.html:39 -msgid "Row" -msgstr "" - #: part/templates/part/bom_upload/select_parts.html:40 #: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" @@ -3998,10 +4228,6 @@ msgstr "" msgid "Each part must already exist in the database" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:27 -msgid "Upload File" -msgstr "" - #: part/templates/part/bom_validate.html:6 #, python-format msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" @@ -4023,7 +4249,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:29 part/views.py:2282 +#: part/templates/part/category.html:29 part/views.py:2290 msgid "Create new part category" msgstr "" @@ -4091,7 +4317,7 @@ msgstr "" msgid "Create new Part Category" msgstr "" -#: part/templates/part/category.html:228 stock/views.py:1359 +#: part/templates/part/category.html:228 stock/views.py:1391 msgid "Create new Stock Location" msgstr "" @@ -4282,15 +4508,11 @@ msgstr "" msgid "Sales Price Information" msgstr "" -#: part/templates/part/navbar.html:95 -msgid "Sale Price" -msgstr "" - #: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10 msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398 +#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404 msgid "Tests" msgstr "" @@ -4315,7 +4537,7 @@ msgstr "" #: part/templates/part/params.html:28 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1655 templates/InvenTree/settings/header.html:8 +#: stock/models.py:1754 templates/InvenTree/settings/header.html:8 #: templates/js/stock.js:124 msgid "Value" msgstr "" @@ -4351,19 +4573,19 @@ msgid "Star this part" msgstr "" #: part/templates/part/part_base.html:47 -#: stock/templates/stock/item_base.html:131 +#: stock/templates/stock/item_base.html:137 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:49 -#: stock/templates/stock/item_base.html:133 +#: stock/templates/stock/item_base.html:139 #: stock/templates/stock/location.html:53 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:50 -#: stock/templates/stock/item_base.html:149 +#: stock/templates/stock/item_base.html:155 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" @@ -4392,7 +4614,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156 +#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157 msgid "In Stock" msgstr "" @@ -4420,42 +4642,39 @@ msgstr "" msgid "Calculate" msgstr "" -#: part/templates/part/part_pricing.html:8 -#, python-format -msgid "Pricing information for:
%(part)s." -msgstr "" - -#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:19 msgid "Supplier Pricing" msgstr "" -#: part/templates/part/part_pricing.html:27 -#: part/templates/part/part_pricing.html:53 +#: part/templates/part/part_pricing.html:23 +#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:81 msgid "Unit Cost" msgstr "" -#: part/templates/part/part_pricing.html:33 -#: part/templates/part/part_pricing.html:59 +#: part/templates/part/part_pricing.html:29 +#: part/templates/part/part_pricing.html:55 +#: part/templates/part/part_pricing.html:85 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:41 +#: part/templates/part/part_pricing.html:37 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:49 +#: part/templates/part/part_pricing.html:45 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:67 +#: part/templates/part/part_pricing.html:63 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:74 +#: part/templates/part/part_pricing.html:70 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:84 +#: part/templates/part/part_pricing.html:94 msgid "No pricing information is available for this part." msgstr "" @@ -4564,6 +4783,10 @@ msgstr "" msgid "New Variant" msgstr "" +#: part/templatetags/inventree_extras.py:97 +msgid "Unknown database" +msgstr "" + #: part/views.py:89 msgid "Add Related Part" msgstr "" @@ -4713,63 +4936,63 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:2081 +#: part/views.py:2089 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:2091 +#: part/views.py:2099 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:2098 +#: part/views.py:2106 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:2106 +#: part/views.py:2114 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2156 +#: part/views.py:2164 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2170 +#: part/views.py:2178 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2230 +#: part/views.py:2238 msgid "Edit Part Category" msgstr "" -#: part/views.py:2268 +#: part/views.py:2276 msgid "Delete Part Category" msgstr "" -#: part/views.py:2274 +#: part/views.py:2282 msgid "Part category was deleted" msgstr "" -#: part/views.py:2326 +#: part/views.py:2334 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2427 +#: part/views.py:2435 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2483 +#: part/views.py:2491 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2502 +#: part/views.py:2510 msgid "Create BOM Item" msgstr "" -#: part/views.py:2572 +#: part/views.py:2580 msgid "Edit BOM item" msgstr "" -#: part/views.py:2628 +#: part/views.py:2636 msgid "Confim BOM item deletion" msgstr "" @@ -4871,17 +5094,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1643 +#: stock/models.py:1742 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1649 +#: stock/models.py:1748 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/order.js:195 templates/js/stock.js:986 +#: templates/js/order.js:195 templates/js/stock.js:984 msgid "Date" msgstr "" @@ -4893,22 +5116,22 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:199 +#: stock/api.py:212 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:268 +#: stock/api.py:281 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475 -#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656 +#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507 +#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656 msgid "Expiry Date" msgstr "" -#: stock/forms.py:115 stock/forms.py:407 +#: stock/forms.py:115 stock/forms.py:419 msgid "Expiration date for this stock item" msgstr "" @@ -4936,8 +5159,8 @@ msgstr "" msgid "Select test report template" msgstr "" -#: stock/forms.py:267 templates/js/table_filters.js:70 -#: templates/js/table_filters.js:133 +#: stock/forms.py:267 templates/js/table_filters.js:71 +#: templates/js/table_filters.js:134 msgid "Include sublocations" msgstr "" @@ -4993,243 +5216,187 @@ msgstr "" msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:54 stock/models.py:513 +#: stock/models.py:54 stock/models.py:545 msgid "Owner" msgstr "" -#: stock/models.py:55 stock/models.py:514 +#: stock/models.py:55 stock/models.py:546 msgid "Select Owner" msgstr "" -#: stock/models.py:205 -msgid "Created stock item" -msgstr "" - -#: stock/models.py:241 +#: stock/models.py:273 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:277 +#: stock/models.py:309 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:287 stock/models.py:296 +#: stock/models.py:319 stock/models.py:328 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:288 +#: stock/models.py:320 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:310 +#: stock/models.py:342 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:316 +#: stock/models.py:348 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:323 +#: stock/models.py:355 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:365 +#: stock/models.py:397 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:374 +#: stock/models.py:406 msgid "Base part" msgstr "" -#: stock/models.py:383 +#: stock/models.py:415 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:391 +#: stock/models.py:423 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:398 +#: stock/models.py:430 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:403 stock/templates/stock/item_base.html:259 +#: stock/models.py:435 stock/templates/stock/item_base.html:265 msgid "Installed In" msgstr "" -#: stock/models.py:406 +#: stock/models.py:438 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:422 +#: stock/models.py:454 msgid "Serial number for this item" msgstr "" -#: stock/models.py:434 +#: stock/models.py:466 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:438 +#: stock/models.py:470 msgid "Stock Quantity" msgstr "" -#: stock/models.py:447 +#: stock/models.py:479 msgid "Source Build" msgstr "" -#: stock/models.py:449 +#: stock/models.py:481 msgid "Build for this stock item" msgstr "" -#: stock/models.py:460 +#: stock/models.py:492 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:463 +#: stock/models.py:495 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:501 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:476 +#: stock/models.py:508 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete on deplete" msgstr "" -#: stock/models.py:489 +#: stock/models.py:521 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:499 stock/templates/stock/item_notes.html:13 +#: stock/models.py:531 stock/templates/stock/item_notes.html:13 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:509 +#: stock/models.py:541 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:614 -msgid "Assigned to Customer" -msgstr "" - -#: stock/models.py:616 -msgid "Manually assigned to customer" -msgstr "" - -#: stock/models.py:629 -msgid "Returned from customer" -msgstr "" - -#: stock/models.py:631 -msgid "Returned to location" -msgstr "" - -#: stock/models.py:792 -msgid "Installed into stock item" -msgstr "" - -#: stock/models.py:800 -msgid "Installed stock item" -msgstr "" - -#: stock/models.py:824 -msgid "Uninstalled stock item" -msgstr "" - -#: stock/models.py:843 -msgid "Uninstalled into location" -msgstr "" - -#: stock/models.py:944 +#: stock/models.py:1009 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:950 +#: stock/models.py:1015 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:956 +#: stock/models.py:1021 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:959 +#: stock/models.py:1024 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1027 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:994 -msgid "Add serial number" -msgstr "" - -#: stock/models.py:997 +#: stock/models.py:1034 #, python-brace-format -msgid "Serialized {n} items" +msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1075 -msgid "Split from existing stock" -msgstr "" - -#: stock/models.py:1113 +#: stock/models.py:1192 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1556 -msgid "Title" -msgstr "" - -#: stock/models.py:1556 -msgid "Tracking entry title" -msgstr "" - -#: stock/models.py:1558 +#: stock/models.py:1666 msgid "Entry notes" msgstr "" -#: stock/models.py:1560 -msgid "Link to external page for further information" -msgstr "" - -#: stock/models.py:1620 +#: stock/models.py:1719 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1626 +#: stock/models.py:1725 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1743 msgid "Test name" msgstr "" -#: stock/models.py:1650 templates/js/table_filters.js:212 +#: stock/models.py:1749 templates/js/table_filters.js:213 msgid "Test result" msgstr "" -#: stock/models.py:1656 +#: stock/models.py:1755 msgid "Test output value" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1762 msgid "Test result attachment" msgstr "" -#: stock/models.py:1669 +#: stock/models.py:1768 msgid "Test notes" msgstr "" @@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted. msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145 +#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:99 -#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150 +#: stock/templates/stock/item_base.html:105 +#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309 +#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309 #: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:138 +#: stock/templates/stock/item_base.html:144 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31 +#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_base.html:153 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:151 +#: stock/templates/stock/item_base.html:157 #: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "" -#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/item_base.html:166 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:170 #: stock/templates/stock/location.html:65 templates/stock_table.html:57 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56 +#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:186 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:189 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299 +#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:187 +#: stock/templates/stock/item_base.html:193 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:202 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:205 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:202 +#: stock/templates/stock/item_base.html:208 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:213 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:225 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:278 templates/js/build.js:498 +#: stock/templates/stock/item_base.html:284 templates/js/build.js:498 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:285 +#: stock/templates/stock/item_base.html:291 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:327 +#: stock/templates/stock/item_base.html:333 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:369 +#: stock/templates/stock/item_base.html:375 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662 +#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:383 +#: stock/templates/stock/item_base.html:389 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:387 +#: stock/templates/stock/item_base.html:393 msgid "No stocktake performed" msgstr "" @@ -5522,7 +5689,7 @@ msgid "Stock Details" msgstr "" #: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279 -#: templates/stats.html:76 users/models.py:41 +#: templates/stats.html:97 users/models.py:41 msgid "Stock Locations" msgstr "" @@ -5562,7 +5729,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364 msgid "Convert Stock Item" msgstr "" @@ -5595,8 +5762,8 @@ msgstr "" msgid "Edit Stock Location" msgstr "" -#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433 -#: stock/views.py:1798 +#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465 +#: stock/views.py:1830 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -5762,43 +5929,47 @@ msgstr "" msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:1224 +#: stock/views.py:1222 +msgid "Edit Stock Item Status" +msgstr "" + +#: stock/views.py:1245 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:1450 +#: stock/views.py:1482 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1543 templates/js/build.js:244 +#: stock/views.py:1575 templates/js/build.js:244 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1685 +#: stock/views.py:1717 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1767 +#: stock/views.py:1799 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1867 +#: stock/views.py:1899 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1880 +#: stock/views.py:1912 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1891 +#: stock/views.py:1923 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1898 +#: stock/views.py:1930 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1907 +#: stock/views.py:1939 msgid "Add Stock Tracking Entry" msgstr "" @@ -5896,8 +6067,7 @@ msgstr "" #: templates/InvenTree/settings/appearance.html:29 #, python-format -msgid "" -"\n" +msgid "\n" " The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n" " Please select another color theme :)\n" " " @@ -6100,9 +6270,17 @@ msgstr "" msgid "Submit Bug Report" msgstr "" -#: templates/about.html:82 templates/js/modals.js:550 -#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52 -#: templates/modals.html:93 +#: templates/about.html:80 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:80 +msgid "copy version information" +msgstr "" + +#: templates/about.html:90 templates/js/modals.js:568 +#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54 +#: templates/modals.html:97 msgid "Close" msgstr "" @@ -6110,10 +6288,6 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/attachment_table.html:15 -msgid "File" -msgstr "" - #: templates/attachment_table.html:17 msgid "Uploaded" msgstr "" @@ -6166,7 +6340,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:857 +#: templates/js/barcode.js:119 templates/js/modals.js:901 msgid "Invalid server response" msgstr "" @@ -6311,7 +6485,7 @@ msgstr "" #: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546 #: templates/js/stock.js:511 templates/js/stock.js:938 -#: templates/js/stock.js:1331 +#: templates/js/stock.js:1453 msgid "Select" msgstr "" @@ -6409,96 +6583,96 @@ msgstr "" msgid "Select Label Template" msgstr "" -#: templates/js/modals.js:256 +#: templates/js/modals.js:265 msgid "Waiting for server..." msgstr "" -#: templates/js/modals.js:406 +#: templates/js/modals.js:424 msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:73 +#: templates/js/modals.js:491 templates/modals.html:76 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:72 +#: templates/js/modals.js:492 templates/modals.html:75 msgid "Cancel" msgstr "" -#: templates/js/modals.js:538 +#: templates/js/modals.js:556 msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:808 -#: templates/modals.html:29 templates/modals.html:53 +#: templates/js/modals.js:567 templates/js/modals.js:845 +#: templates/modals.html:30 templates/modals.html:55 msgid "Submit" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:760 +#: templates/js/modals.js:797 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:773 +#: templates/js/modals.js:810 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:857 +#: templates/js/modals.js:901 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:911 msgid "No Response" msgstr "" -#: templates/js/modals.js:868 +#: templates/js/modals.js:912 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:916 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:873 +#: templates/js/modals.js:917 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:921 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:878 +#: templates/js/modals.js:922 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:926 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:883 +#: templates/js/modals.js:927 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:931 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:888 +#: templates/js/modals.js:932 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:936 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:893 +#: templates/js/modals.js:937 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:896 +#: templates/js/modals.js:940 msgid "Error requesting form data" msgstr "" @@ -6542,7 +6716,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:409 templates/js/table_filters.js:318 +#: templates/js/part.js:409 templates/js/table_filters.js:319 msgid "Low stock" msgstr "" @@ -6740,7 +6914,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:620 templates/js/table_filters.js:138 +#: templates/js/stock.js:620 templates/js/table_filters.js:139 msgid "Depleted" msgstr "" @@ -6764,189 +6938,213 @@ msgstr "" msgid "Status code must be selected" msgstr "" -#: templates/js/stock.js:1050 +#: templates/js/stock.js:994 +msgid "Invalid date" +msgstr "" + +#: templates/js/stock.js:1036 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/stock.js:1055 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/stock.js:1074 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/stock.js:1092 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/stock.js:1115 +msgid "Added" +msgstr "" + +#: templates/js/stock.js:1123 +msgid "Removed" +msgstr "" + +#: templates/js/stock.js:1155 msgid "No user information" msgstr "" -#: templates/js/stock.js:1060 +#: templates/js/stock.js:1167 msgid "Edit tracking entry" msgstr "" -#: templates/js/stock.js:1061 +#: templates/js/stock.js:1168 msgid "Delete tracking entry" msgstr "" -#: templates/js/stock.js:1170 +#: templates/js/stock.js:1292 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:1269 +#: templates/js/stock.js:1391 msgid "Serial" msgstr "" -#: templates/js/stock.js:1362 templates/js/table_filters.js:171 +#: templates/js/stock.js:1484 templates/js/table_filters.js:172 msgid "Installed" msgstr "" -#: templates/js/stock.js:1387 +#: templates/js/stock.js:1509 msgid "Install item" msgstr "" -#: templates/js/table_filters.js:42 +#: templates/js/table_filters.js:43 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:46 +#: templates/js/table_filters.js:47 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:71 +#: templates/js/table_filters.js:72 msgid "Include locations" msgstr "" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:295 +#: templates/js/table_filters.js:82 templates/js/table_filters.js:83 +#: templates/js/table_filters.js:296 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:92 templates/js/table_filters.js:181 +#: templates/js/table_filters.js:93 templates/js/table_filters.js:182 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:95 templates/js/table_filters.js:188 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:189 +#: templates/js/table_filters.js:97 templates/js/table_filters.js:190 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:99 templates/js/table_filters.js:192 +#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:100 templates/js/table_filters.js:193 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:194 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:103 templates/js/table_filters.js:104 -#: templates/js/table_filters.js:184 templates/js/table_filters.js:185 +#: templates/js/table_filters.js:104 templates/js/table_filters.js:105 +#: templates/js/table_filters.js:185 templates/js/table_filters.js:186 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:108 templates/js/table_filters.js:202 +#: templates/js/table_filters.js:109 templates/js/table_filters.js:203 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:118 templates/js/table_filters.js:285 +#: templates/js/table_filters.js:119 templates/js/table_filters.js:286 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:120 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:125 msgid "Part is an assembly" msgstr "" -#: templates/js/table_filters.js:128 +#: templates/js/table_filters.js:129 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:129 +#: templates/js/table_filters.js:130 msgid "Item has been allocated" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:135 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:140 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:146 +#: templates/js/table_filters.js:147 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:151 +#: templates/js/table_filters.js:152 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:157 +#: templates/js/table_filters.js:158 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:161 +#: templates/js/table_filters.js:162 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:162 +#: templates/js/table_filters.js:163 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:166 +#: templates/js/table_filters.js:167 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:167 +#: templates/js/table_filters.js:168 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:172 +#: templates/js/table_filters.js:173 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:176 -msgid "Sent to customer" -msgstr "" - -#: templates/js/table_filters.js:177 +#: templates/js/table_filters.js:178 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:197 templates/js/table_filters.js:198 +#: templates/js/table_filters.js:198 templates/js/table_filters.js:199 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:231 +#: templates/js/table_filters.js:232 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:250 templates/js/table_filters.js:267 +#: templates/js/table_filters.js:251 templates/js/table_filters.js:268 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:255 templates/js/table_filters.js:272 +#: templates/js/table_filters.js:256 templates/js/table_filters.js:273 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:296 +#: templates/js/table_filters.js:297 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:300 +#: templates/js/table_filters.js:301 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:301 +#: templates/js/table_filters.js:302 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:306 +#: templates/js/table_filters.js:307 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:314 +#: templates/js/table_filters.js:315 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:330 +#: templates/js/table_filters.js:331 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:342 +#: templates/js/table_filters.js:343 msgid "Purchasable" msgstr "" @@ -7003,7 +7201,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:21 templates/modals.html:46 +#: templates/modals.html:21 templates/modals.html:47 msgid "Form errors exist" msgstr "" @@ -7115,31 +7313,47 @@ msgstr "" msgid "Instance Name" msgstr "" -#: templates/stats.html:19 -msgid "Server status" +#: templates/stats.html:18 +msgid "Database" msgstr "" -#: templates/stats.html:22 -msgid "Healthy" +#: templates/stats.html:26 +msgid "Server is running in debug mode" msgstr "" -#: templates/stats.html:24 -msgid "Issues detected" -msgstr "" - -#: templates/stats.html:31 -msgid "Background Worker" +#: templates/stats.html:33 +msgid "Docker Mode" msgstr "" #: templates/stats.html:34 -msgid "Background worker not running" +msgid "Server is deployed using docker" msgstr "" -#: templates/stats.html:42 -msgid "Email Settings" +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" msgstr "" #: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 msgid "Email settings not configured" msgstr "" @@ -7258,3 +7472,4 @@ msgstr "" #: users/models.py:187 msgid "Permission to delete items" msgstr "" + diff --git a/crowdin.yml b/crowdin.yml index 0fa92db24d..ad69a576eb 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,3 +1,6 @@ +"commit_message": "Fix: New translations %original_file_name% from Crowdin" +"append_commit_message": false + files: - source: /InvenTree/locale/en/LC_MESSAGES/django.po translation: /InvenTree/locale/%two_letters_code%/LC_MESSAGES/%original_file_name% From 01d444279c35b3ee6c7f04c7f250d5f360105e97 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 18 May 2021 22:11:24 +1000 Subject: [PATCH 17/19] Add setting for fixer.io API key --- InvenTree/common/models.py | 6 ++++++ InvenTree/templates/InvenTree/settings/global.html | 1 + 2 files changed, 7 insertions(+) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 99712b2a93..e499e9b801 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -87,6 +87,12 @@ class InvenTreeSetting(models.Model): 'choices': djmoney.settings.CURRENCY_CHOICES, }, + 'INVENTREE_FIXER_API_KEY': { + 'name': _('fixer.io API key'), + 'description': _('API key for fixer.io currency conversion service'), + 'default': '', + }, + 'INVENTREE_DOWNLOAD_FROM_URL': { 'name': _('Download from URL'), 'description': _('Allow download of remote images and files from external URL'), diff --git a/InvenTree/templates/InvenTree/settings/global.html b/InvenTree/templates/InvenTree/settings/global.html index a0347490d0..5c5dccfb2a 100644 --- a/InvenTree/templates/InvenTree/settings/global.html +++ b/InvenTree/templates/InvenTree/settings/global.html @@ -20,6 +20,7 @@ {% include "InvenTree/settings/setting.html" with key="INVENTREE_BASE_URL" icon="fa-globe" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_COMPANY_NAME" icon="fa-building" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_DEFAULT_CURRENCY" icon="fa-dollar-sign" %} + {% include "InvenTree/settings/setting.html" with key="INVENTREE_FIXER_API_KEY" icon="fa-key" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_DOWNLOAD_FROM_URL" icon="fa-cloud-download-alt" %}
From 663f5562e8e7bc83f5d8db3caa6e7acb6d2632bb Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 18 May 2021 22:41:26 +1000 Subject: [PATCH 18/19] Schedule a daily task to update currency information --- InvenTree/InvenTree/apps.py | 5 +++++ InvenTree/InvenTree/settings.py | 3 ++- InvenTree/InvenTree/tasks.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/InvenTree/InvenTree/apps.py b/InvenTree/InvenTree/apps.py index 148638b5b2..aa60058dcf 100644 --- a/InvenTree/InvenTree/apps.py +++ b/InvenTree/InvenTree/apps.py @@ -44,3 +44,8 @@ class InvenTreeConfig(AppConfig): schedule_type=Schedule.MINUTES, minutes=15 ) + + InvenTree.tasks.schedule_task( + 'InvenTree.tasks.update_exchange_rates', + schedule_type=Schedule.DAILY, + ) diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 67a500a07a..5cf0b0c544 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -513,7 +513,8 @@ CURRENCIES = CONFIG.get( ], ) -# TODO - Allow live web-based backends in the future +BASE_CURRENCY = CONFIG.get('base_currency', 'USD') + EXCHANGE_BACKEND = 'InvenTree.exchange.InvenTreeManualExchangeBackend' # Extract email settings from the config file diff --git a/InvenTree/InvenTree/tasks.py b/InvenTree/InvenTree/tasks.py index 6c01e03aa6..8640395d42 100644 --- a/InvenTree/InvenTree/tasks.py +++ b/InvenTree/InvenTree/tasks.py @@ -161,6 +161,34 @@ def check_for_updates(): ) +def update_exchange_rates(): + """ + If an API key for fixer.io has been provided, attempt to update currency exchange rates + """ + + try: + import common.models + from django.conf import settings + from djmoney.contrib.exchange.backends import FixerBackend + except AppRegistryNotReady: + # Apps not yet loaded! + return + + fixer_api_key = common.models.InvenTreeSetting.get_setting('INVENTREE_FIXER_API_KEY', '').strip() + + if not fixer_api_key: + # API key not provided + return + + backend = FixerBackend(access_key=fixer_api_key) + + currencies = ','.join(settings.CURRENCIES) + + base = settings.BASE_CURRENCY + + result = backend.update_rates(base_currency=base, symbols=currencies) + + def send_email(subject, body, recipients, from_email=None): """ Send an email with the specified subject and body, From 4101e2568011b518cc29d0000d3674fc8a01d52e Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 18 May 2021 22:41:57 +1000 Subject: [PATCH 19/19] Style fixes --- InvenTree/InvenTree/tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/InvenTree/tasks.py b/InvenTree/InvenTree/tasks.py index 8640395d42..b81b4e6de4 100644 --- a/InvenTree/InvenTree/tasks.py +++ b/InvenTree/InvenTree/tasks.py @@ -186,7 +186,7 @@ def update_exchange_rates(): base = settings.BASE_CURRENCY - result = backend.update_rates(base_currency=base, symbols=currencies) + backend.update_rates(base_currency=base, symbols=currencies) def send_email(subject, body, recipients, from_email=None):