From 05b194388630dad86c5907c187a5c483d7cb0c0b Mon Sep 17 00:00:00 2001 From: eeintech Date: Fri, 18 Feb 2022 12:25:50 -0500 Subject: [PATCH 01/30] Set default error message visibility in modal options --- InvenTree/templates/js/translated/modals.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/InvenTree/templates/js/translated/modals.js b/InvenTree/templates/js/translated/modals.js index 539ce61912..f114f6f419 100644 --- a/InvenTree/templates/js/translated/modals.js +++ b/InvenTree/templates/js/translated/modals.js @@ -893,6 +893,9 @@ function handleModalForm(url, options) { // Re-enable the modal modalEnable(modal, true); if ('form_valid' in response) { + // Get visibility option of error message + var hideErrorMessage = (options.hideErrorMessage === undefined) ? true : options.hideErrorMessage; + // Form data was validated correctly if (response.form_valid) { $(modal).modal('hide'); @@ -901,7 +904,7 @@ function handleModalForm(url, options) { // Form was returned, invalid! // Disable error message with option or response - if (!options.hideErrorMessage && !response.hideErrorMessage) { + if (!hideErrorMessage && !response.hideErrorMessage) { var warningDiv = $(modal).find('#form-validation-warning'); warningDiv.css('display', 'block'); } From 68d182d67b37559d3391f1f84a77fd5b70e835fb Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 04:23:19 +0100 Subject: [PATCH 02/30] remove unused code --- InvenTree/part/test_bom_import.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/InvenTree/part/test_bom_import.py b/InvenTree/part/test_bom_import.py index 8903660f39..c0a08c2abd 100644 --- a/InvenTree/part/test_bom_import.py +++ b/InvenTree/part/test_bom_import.py @@ -41,7 +41,7 @@ class BomUploadTest(InvenTreeAPITestCase): assembly=False, ) - def post_bom(self, filename, file_data, part=None, clear_existing=None, expected_code=None, content_type='text/plain'): + def post_bom(self, filename, file_data, clear_existing=None, expected_code=None, content_type='text/plain'): bom_file = SimpleUploadedFile( filename, @@ -49,9 +49,6 @@ class BomUploadTest(InvenTreeAPITestCase): content_type=content_type, ) - if part is None: - part = self.part.pk - if clear_existing is None: clear_existing = False From 1ff6988ffd9320327bbe3e40c54d04655ceb6037 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 04:24:13 +0100 Subject: [PATCH 03/30] remove unneeded assignment --- InvenTree/part/test_bom_import.py | 2 +- InvenTree/stock/test_api.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/InvenTree/part/test_bom_import.py b/InvenTree/part/test_bom_import.py index c0a08c2abd..6f9006d487 100644 --- a/InvenTree/part/test_bom_import.py +++ b/InvenTree/part/test_bom_import.py @@ -186,7 +186,7 @@ class BomUploadTest(InvenTreeAPITestCase): self.assertIn('No part column specified', str(response.data)) - response = self.post( + self.post( url, { 'rows': rows, diff --git a/InvenTree/stock/test_api.py b/InvenTree/stock/test_api.py index 1e09dec907..a9dbe9e723 100644 --- a/InvenTree/stock/test_api.py +++ b/InvenTree/stock/test_api.py @@ -393,7 +393,7 @@ class StockItemTest(StockAPITestCase): self.assertEqual(trackable_part.get_stock_count(), 0) # This should fail, incorrect serial number count - response = self.post( + self.post( self.list_url, data={ 'part': trackable_part.pk, From 306725ef92db72440719a2003e48187a0688c56a Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 04:25:17 +0100 Subject: [PATCH 04/30] merge satement --- InvenTree/stock/api.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 9723e01c09..fb1cc5f2ba 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -516,9 +516,7 @@ class StockList(generics.ListCreateAPIView): data['location'] = location.pk # An expiry date was *not* specified - try to infer it! - if 'expiry_date' not in data: - - if part.default_expiry > 0: + if 'expiry_date' not in data and part.default_expiry > 0: data['expiry_date'] = datetime.now().date() + timedelta(days=part.default_expiry) # Attempt to extract serial numbers from submitted data From d5bcd256f6c21363b6a22af4fcda3fd3f261967e Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 04:26:52 +0100 Subject: [PATCH 05/30] merge statments --- InvenTree/part/serializers.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 549b546a5b..d3956f3c6c 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -789,21 +789,20 @@ class BomImportExtractSerializer(DataFileExtractSerializer): pass # No direct match, where else can we look? - if part is None: - if part_name or part_ipn: - queryset = Part.objects.all() + if part is None and (part_name or part_ipn): + queryset = Part.objects.all() - if part_name: - queryset = queryset.filter(name=part_name) + if part_name: + queryset = queryset.filter(name=part_name) - if part_ipn: - queryset = queryset.filter(IPN=part_ipn) + if part_ipn: + queryset = queryset.filter(IPN=part_ipn) - if queryset.exists(): - if queryset.count() == 1: - part = queryset.first() - else: - row['errors']['part'] = _('Multiple matching parts found') + if queryset.exists(): + if queryset.count() == 1: + part = queryset.first() + else: + row['errors']['part'] = _('Multiple matching parts found') if part is None: row['errors']['part'] = _('No matching part found') From e9b501f7ebcd4ac7aff3cb2d11bbcb6ca60835c3 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 04:29:46 +0100 Subject: [PATCH 06/30] remove unneeded continue --- InvenTree/InvenTree/helpers.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py index 6dad393349..2595f8b5c3 100644 --- a/InvenTree/InvenTree/helpers.py +++ b/InvenTree/InvenTree/helpers.py @@ -475,7 +475,6 @@ def extract_serial_numbers(serials, expected_quantity, next_number: int): continue else: errors.append(_("Invalid group: {g}").format(g=group)) - continue # plus signals either # 1: 'start+': expected number of serials, starting at start @@ -500,7 +499,6 @@ def extract_serial_numbers(serials, expected_quantity, next_number: int): # no case else: errors.append(_("Invalid group: {g}").format(g=group)) - continue # Group should be a number elif group: From ebd54045ecd01eafc1e6f5fdae387c0eaf14ef36 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 04:40:18 +0100 Subject: [PATCH 07/30] PEP fix --- InvenTree/stock/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index fb1cc5f2ba..ed7a4b8c40 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -517,7 +517,7 @@ class StockList(generics.ListCreateAPIView): # An expiry date was *not* specified - try to infer it! if 'expiry_date' not in data and part.default_expiry > 0: - data['expiry_date'] = datetime.now().date() + timedelta(days=part.default_expiry) + data['expiry_date'] = datetime.now().date() + timedelta(days=part.default_expiry) # Attempt to extract serial numbers from submitted data serials = None From d7c6c23acba8303b55d193e67df3bf4b39381997 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 20 Feb 2022 19:38:59 +1100 Subject: [PATCH 08/30] I18n merge (#2647) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin --- InvenTree/locale/de/LC_MESSAGES/django.po | 2814 +++++++++--------- InvenTree/locale/el/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/es/LC_MESSAGES/django.po | 2716 +++++++++--------- InvenTree/locale/fr/LC_MESSAGES/django.po | 2742 +++++++++--------- InvenTree/locale/he/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/id/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/it/LC_MESSAGES/django.po | 2721 +++++++++--------- InvenTree/locale/ja/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/ko/LC_MESSAGES/django.po | 2752 +++++++++--------- InvenTree/locale/nl/LC_MESSAGES/django.po | 2712 +++++++++--------- InvenTree/locale/no/LC_MESSAGES/django.po | 3150 +++++++++++---------- InvenTree/locale/pl/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/pt/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/ru/LC_MESSAGES/django.po | 2714 +++++++++--------- InvenTree/locale/sv/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/th/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/tr/LC_MESSAGES/django.po | 2714 +++++++++--------- InvenTree/locale/vi/LC_MESSAGES/django.po | 2710 +++++++++--------- InvenTree/locale/zh/LC_MESSAGES/django.po | 2716 +++++++++--------- 19 files changed, 27324 insertions(+), 24817 deletions(-) diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 5561686714..640df9a958 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-19 14:45\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -34,9 +34,9 @@ msgstr "Keine passende Aktion gefunden" msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Bestätigen" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Doppelte Seriennummer: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -119,133 +119,133 @@ 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:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "Fehlende Datei" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "Fehlender externer Link" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Anhang" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Link" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Link zu einer externen URL" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Benutzer" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "Hochladedatum" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Dateiname darf nicht leer sein" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Ungültiges Verzeichnis für Anhang" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Dateiname enthält ungültiges Zeichen '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Dateiendung fehlt" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Anhang mit diesem Dateinamen bereits vorhanden" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Fehler beim Umbenennen" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Name" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "Eltern" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" @@ -253,83 +253,127 @@ msgstr "Muss eine gültige Nummer sein" msgid "Filename" msgstr "Dateiname" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "Ungültiger Wert" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "Datendatei" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "Neue Datei zum Hochladen auswählen" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "Nicht unterstütztes Dateiformat" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "Datei ist zu groß" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "Keine Spalten in der Datei gefunden" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "Keine Datensätze in der Datei gefunden" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "Keine Zeilen ausgewählt" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "Keine Spalten angegeben" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "Erforderliche Spalte fehlt" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "Doppelte Spalte" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Griechisch" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "Spanisch (Mexikanisch)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "Portugiesisch" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Chinesisch" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree Status-Überprüfung fehlgeschlagen" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "Ausstehend" @@ -456,7 +500,7 @@ msgstr "Vom übergeordneten Element geteilt" msgid "Split child item" msgstr "Unterobjekt geteilt" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "Lagerartikel zusammengeführt" @@ -484,41 +528,41 @@ msgstr "Gegen Bestellung empfangen" msgid "Production" msgstr "in Arbeit" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "Kein gültiger Währungscode" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Ungültiger Buchstabe im Teilenamen" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN muss zu Regex-Muster {pat} passen" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "Referenz muss zu Regex-Muster {pattern} passen" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "Ungültiges Zeichen im Namen ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "Überschuss-Wert darf nicht negativ sein" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "Überschuss darf 100% nicht überschreiten" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" -msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "Ungültiger Wert für Ausschuss" #: InvenTree/views.py:538 msgid "Delete Item" @@ -584,69 +628,11 @@ msgstr "Barcode-Hash entspricht bereits einem Lagerartikel" msgid "Barcode associated with Stock Item" msgstr "Barcode Lagerartikel zugeordnet" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Anzahl" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "Menge der Endprodukte angeben" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Seriennummer" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "Seriennummer für dieses Endprodukt eingeben" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "Anlage von Endprodukt(en) bestätigen" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "Löschen des Endprodukt bestätigen" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "Abbruch bestätigen" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "Bauabbruch bestätigen" @@ -657,7 +643,7 @@ msgstr "Ungültige Wahl für übergeordneten Bauauftrag" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "Bauauftrag" @@ -665,7 +651,7 @@ msgstr "Bauauftrag" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "Bauauftragsreferenz" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referenz" @@ -689,7 +675,7 @@ msgstr "Referenz" msgid "Brief description of the build" msgstr "Kurze Beschreibung des Baus" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "Eltern-Bauauftrag" @@ -702,30 +688,31 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Teil" @@ -741,7 +728,7 @@ msgstr "Auftrag Referenz" msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "Quell-Lagerort" @@ -782,15 +769,15 @@ msgstr "Bauauftrags-Status" msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "Losnummer" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Erstelldatum" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -812,7 +799,7 @@ msgstr "Fertigstellungsdatum" msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "Aufgegeben von" @@ -820,12 +807,12 @@ msgstr "Aufgegeben von" msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "Verantwortlicher Benutzer" @@ -837,26 +824,26 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "Externer Link" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "Notizen" @@ -864,208 +851,284 @@ msgstr "Notizen" msgid "Extra build notes" msgstr "Extranotizen für den Bauauftrag" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "kein Endprodukt angegeben" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "Endprodukt bereits hergstellt" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:1115 +#: build/models.py:1154 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:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "Bauauftrag" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "Bauauftrag starten um Teile zuzuweisen" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Anzahl" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "Endprodukt" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "Dieses Endprodukt wurde bereits fertiggestellt" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "Lagerort" +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "Menge der Endprodukte angeben" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "Lagerort für fertige Endprodukte" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "Status" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "Eine Liste von Endprodukten muss angegeben werden" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "Stücklisten-Position" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "Endprodukt" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "Teil muss auf Lager sein" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Seriennummer" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "Seriennummer für dieses Endprodukt eingeben" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "Eine Liste von Endprodukten muss angegeben werden" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Lagerort" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "Lagerort für fertige Endprodukte" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Status" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "Akzeptieren, dass Lagerartikel diesem Bauauftrag nicht vollständig zugewiesen wurden" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "Akzeptieren, dass die erforderliche Anzahl der Bauaufträge nicht abgeschlossen ist" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "Bauauftrag hat unvollständige Aufbauten" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "Stücklisten-Position" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "Endprodukt" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "Teil muss auf Lager sein" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Verfügbare Menge ({q}) überschritten" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "Zuweisungen müssen angegeben werden" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "Bestand für Bauauftrag erforderlich" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "Bauauftrag bearbeiten" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "Bauauftrag abbrechen" @@ -1105,110 +1168,90 @@ msgstr "Bauauftrag fertigstellen" msgid "Build Description" msgstr "Baubeschreibung" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Dieser Bauauftrag ist dem Auftrag %(link)s zugeordnet" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Dieser Bauauftrag ist dem Bauauftrag %(link)s untergeordnet" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "Bauauftrag ist bereit abgeschlossen zu werden" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch ausstehende Endprodukte gibt" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "Zieldatum" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "Bauauftrag war fällig am %(target)s" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "Überfällig" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Fertig" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "Auftrag" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Aufgegeben von" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "Unfertige Endprodukte" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch unvollständige Endprodukte gibt" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "Die Stückliste enthält verfolgbare Teile" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "Endprodukte müssen individuell angelegt werden." - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "Mehrere Endprodukte werden anhand der gegebenen Anzahl angelegt werden." - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "Nachverfolgbare Teile können Seriennummern haben" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "Seriennummeren für mehrere einzelne Endprodukte angeben" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "Sind Sie sicher, dass sie diesen Bauauftrag abbrechen möchten?" @@ -1225,7 +1268,7 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Ziel-Lager" @@ -1234,13 +1277,13 @@ msgstr "Ziel-Lager" msgid "Destination location not specified" msgstr "Ziel-Lagerort nicht angegeben" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "Zugewiesene Teile" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "Losnummer" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "Erstellt" @@ -1269,7 +1312,7 @@ msgstr "Unter-Bauaufträge" msgid "Allocate Stock to Build" msgstr "Bestand Bauauftrag zuweisen" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "Bestandszuordnung aufheben" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "Endproduktaktionen" #: build/templates/build/detail.html:250 -msgid "Complete selected items" -msgstr "Ausgewählte Positionen abschließen" +msgid "Complete selected build outputs" +msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "Endprodukte fertigstellen" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "Fertiggestellte Endprodukte" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Anhänge" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "Bauauftrags-Notizen" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "Anmerkungen bearbeiten" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "Zuordnung abgeschlossen" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "Neuer Bauauftrag" @@ -1406,51 +1457,11 @@ msgstr "Ausstehende Einträge" msgid "Completed Items" msgstr "Abgeschlossene Elemente" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "Bauauftrag wurde abgebrochen" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "Endprodukt anlegen" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "Maximale Endproduktmenge ist " - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "Seriennummern existieren bereits" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "Seriennummern für verfolgbare Endprodukte benötigt" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "Endprodukt entfernen" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "Entfernung von Bestands-Zuordnung bestätigen" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "Bestätigungsbox bestätigen" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "Endprodukt stimmt nicht mit Bauauftrag überein" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "Endprodukt muss angegeben sein" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "Endprodukt gelöscht" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "Bauauftrag löschen" @@ -1639,9 +1650,9 @@ msgstr "Kategorie-Parametervorlage kopieren" msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "Vorlage" @@ -1649,9 +1660,9 @@ msgstr "Vorlage" msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "Baugruppe" @@ -1659,8 +1670,8 @@ msgstr "Baugruppe" msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "Komponente" @@ -1668,7 +1679,7 @@ msgstr "Komponente" msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "Kaufbar" @@ -1676,8 +1687,8 @@ msgstr "Kaufbar" msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "Verkäuflich" @@ -1685,10 +1696,10 @@ msgstr "Verkäuflich" msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "Nachverfolgbar" @@ -1696,7 +1707,7 @@ msgstr "Nachverfolgbar" msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "Preis in Stückliste anzeigen" msgid "Include pricing information in BOM tables" msgstr "Preisinformationen in Stücklisten Tabellen einbeziehen" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "Preisverlauf anzeigen" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "Historische Preise für Teil anzeigen" + +#: common/models.py:792 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "Ausgangsbestand erstellen" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "Interner Preis als Stückliste-Preis" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "Anzeigeformat für Teilenamen" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "Test-Berichte" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:863 +#: common/models.py:875 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:865 +#: common/models.py:877 msgid "days" msgstr "Tage" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "Bauauftrag-Referenz Präfix" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "Präfix für Bauauftrag-Referenz" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "Bauauftrag-Referenz RegEx" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "Auftrags-Referenz Präfix" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "Präfix für Auftrags-Referenz" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "Bestellungs-Referenz Präfix" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "Präfix für Bestellungs-Referenz" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "Anmeldung erlauben" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" -msgstr "" +msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" -msgstr "" +msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" -msgstr "" +msgstr "App-Integration aktivieren" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" -msgstr "" +msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" -msgstr "" +msgstr "Terminplan-Integration aktivieren" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "Nicht validierte Stücklisten anzeigen" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "Suche Bestand anzeigen" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "Bestand in Suchvorschau anzeigen" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "Position der InvenTree Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "Preis" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "Aktiv" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "Token" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" -msgstr "" +msgstr "Secret" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" -msgstr "" +msgstr "Shared Secret für HMAC" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" -msgstr "" +msgstr "Nachrichten-ID" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "Host" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "Header" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "Body" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" -msgstr "" +msgstr "Bearbeitet" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" -msgstr "" +msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "Datei hochgeladen" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Übereinstimmende Felder" @@ -2328,15 +2345,13 @@ msgstr "Felder zuteilen fehlgeschlagen" msgid "Parts imported" msgstr "Teile importiert" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "Vorheriger Schritt" @@ -2404,7 +2419,7 @@ msgstr "Anlaufstelle" msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "Bild" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Basisteil" @@ -2453,11 +2468,11 @@ msgstr "Teil auswählen" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "Hersteller" @@ -2488,7 +2503,7 @@ msgstr "Teilbeschreibung des Herstellers" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "Herstellerteil" @@ -2499,7 +2514,7 @@ msgstr "Parametername" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "Wert" @@ -2507,9 +2522,9 @@ msgstr "Wert" msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "Einheiten" @@ -2526,11 +2541,11 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "Zulieferer" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Notiz" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "Verpackungen" @@ -2584,7 +2600,7 @@ msgstr "Verpackungen" msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "Vielfache" @@ -2645,11 +2661,11 @@ msgstr "Bild von URL herunterladen" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "Kunde" @@ -2679,7 +2695,7 @@ msgstr "Neues Zuliefererteil anlegen" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "Neues Zuliefererteil" @@ -2687,8 +2703,8 @@ msgstr "Neues Zuliefererteil" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "Optionen" @@ -2716,7 +2732,7 @@ msgstr "Herstellerteile" msgid "Create new manufacturer part" msgstr "Neues Herstellerteil anlegen" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "Neues Herstellerteil" @@ -2730,7 +2746,7 @@ msgstr "Zulieferer-Bestand" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "Neue Bestellung" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "Neuer Auftrag" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" @@ -2780,13 +2796,13 @@ msgstr "Firmenbemerkungen" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "Zuliefererteil entfernen?" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "Alle ausgewählten Zulieferteile werden gelöscht" @@ -2824,36 +2840,36 @@ msgstr "Internes Teil" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "Zulieferer" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "Zuliefererteil entfernen" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "Löschen" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Parameter" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "Neuer Parameter" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "Parameter löschen" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "Parameter hinzufügen" @@ -2892,8 +2908,8 @@ msgstr "Zugewiesene Lagerartikel" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "Zuliefererteil" @@ -2919,7 +2935,7 @@ msgstr "Neuen Lagerartikel hinzufügen" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -2940,7 +2956,7 @@ msgstr "Preisinformationen ansehen" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -2948,11 +2964,11 @@ msgstr "Preisstaffel hinzufügen" msgid "No price break information found" msgstr "Keine Informationen zur Preisstaffel gefunden" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "Preisstaffel löschen" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "Preisstaffel löschen" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "Bestand" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "Zuliefererteil Bepreisung" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "Bepreisung" @@ -2996,7 +3012,7 @@ msgstr "Bepreisung" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Lagerartikel" @@ -3026,20 +3042,20 @@ msgstr "Firmen" msgid "New Company" msgstr "Neue Firma" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Bild herunterladen" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "Ungültige Antwort {code}" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" @@ -3253,19 +3269,19 @@ msgstr "Position - Notizen" #: order/models.py:842 msgid "Supplier part must match supplier" -msgstr "" +msgstr "Lieferantenteil muss mit Lieferant übereinstimmen" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "Bestellung" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "Bestellung" @@ -3276,7 +3292,7 @@ msgstr "Zuliefererteil" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "Empfangen" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "Preis" @@ -3530,7 +3546,7 @@ msgstr "Bestellungsbeschreibung" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "Bestellstatus" @@ -3574,73 +3590,20 @@ msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie und ihre Positionen n msgid "After placing this purchase order, line items will no longer be editable." msgstr "Nachdem diese Bestellung plaziert ist können die Positionen nicht länger bearbeitbar ist." -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -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 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "Auswahl übertragen" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "Datei-Felder" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "Spalte entfernen" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "Zeile entfernen" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "Fehler in den übermittelten Daten" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "Auswahl übertragen" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "Zeile" msgid "Select Supplier Part" msgstr "Zulieferer-Teil auswählen" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "Zeile entfernen" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "Zurück zu Bestellungen" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "Datei zur Bestellung hochladen" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "Schritt %(step)s von %(count)s" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "Ausstehende Sendungen" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "Aktionen" @@ -3896,11 +3872,11 @@ msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" #: part/api.py:499 msgid "Valid" -msgstr "" +msgstr "Gültig" #: part/api.py:500 msgid "Validate entire Bill of Materials" -msgstr "" +msgstr "Gesamte Stückliste validieren" #: part/api.py:505 msgid "This option must be selected" @@ -3922,7 +3898,7 @@ msgstr "Standort für anfänglichen Bestand angeben" msgid "This field is required" msgstr "Dieses Feld ist erforderlich" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Standard-Lagerort" @@ -3968,7 +3944,7 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" @@ -3994,408 +3970,478 @@ msgstr "Teile" msgid "Invalid choice for parent part" msgstr "Ungültige Auswahl für übergeordnetes Teil" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "Nächste verfügbare Seriennummern wären" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "Nächste verfügbare Seriennummer ist" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "Die neuste Seriennummer ist" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "Variante von" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "Schlüsselwörter" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "Kategorie" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "Revision" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "Minimaler Bestand" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "Stock Keeping Units (SKU) für dieses Teil" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "Bemerkungen - unterstüzt Markdown-Formatierung" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2333 +#: part/models.py:2369 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:2350 +#: part/models.py:2386 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:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Benötigt" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:2389 +#: part/models.py:2425 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:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2395 +#: part/models.py:2431 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:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Ungültiges Zeichen im Vorlagename ({c})" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "Einheit des Parameters" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "Wert" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "Teilnummer oder Teilname" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "Teil-ID" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "Eindeutige Teil-ID" + #: part/models.py:2621 +msgid "Part Name" +msgstr "Name des Teils" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "Teil-ID" + +#: part/models.py:2626 +msgid "Part IPN value" +msgstr "IPN-Wert des Teils" + +#: part/models.py:2629 +msgid "Level" +msgstr "Stufe" + +#: part/models.py:2630 +msgid "BOM level" +msgstr "Stücklistenebene" + +#: part/models.py:2690 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2629 +#: part/models.py:2698 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:2630 +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Optional" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2655 +#: part/models.py:2724 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:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" -msgstr "" +msgstr "Bauteil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" -msgstr "" +msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "Bestehende Stückliste löschen" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "Mehrere übereinstimmende Teile gefunden" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "Keine passenden Teile gefunden" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "Teil ist nicht als Komponente angelegt" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "Menge nicht angegeben" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "Ungültige Menge" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "Benachrichtigungen über geringen Bestand" @@ -4418,7 +4464,7 @@ msgstr "Die Stückliste für %(part)s wurde zuletzt von %(checker)s am msgid "The BOM for %(part)s has not been validated." msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "Stücklisten-Aktionen" @@ -4426,34 +4472,6 @@ msgstr "Stücklisten-Aktionen" msgid "Delete Items" msgstr "Einträge löschen" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "Teil auswählen" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "Zurück zur Stückliste" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "Stückliste hochladen" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "Anforderungen für Stückliste-Datei" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "Die Stückliste-Datei muss die aufgeführten Spalten enthalten; siehe" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "Vorlage für Stückliste" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "Jedes Teil muss bereits in der Datenbank bestehen" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "Sie haben Benachrichtigungen für diese Kategorie abonniert" @@ -4519,7 +4537,7 @@ msgstr "Exportieren" msgid "Create new part" msgstr "Neues Teil anlegen" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "Neues Teil" @@ -4639,138 +4657,168 @@ msgstr "Test Vorlage hinzufügen" msgid "Sales Order Allocations" msgstr "Verkaufsauftragszuweisungen" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "Teil Varianten" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "Neue Variante anlegen" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "neue Variante anlegen" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "Verknüpfte Teile" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "Stückliste" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "Export-Aktionen" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Stückliste exportieren" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "Stücklisten-Bericht drucken" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "Stückliste hochladen" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "Stückliste überprüfen" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "Neue Stücklisten-Position" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "Stücklisten-Position hinzufügen" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "Baugruppen" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "Gefertigte Teile" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "Bauauftragszuweisungen" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "Zulieferer" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "Teil-Hersteller" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "Herstellerteile löschen" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "Ausgewählte Stücklistenpositionen löschen?" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "verknüpftes Teil" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "Teilenotizen bearbeiten" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Stückpreis Einkauf - %(currency)s" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Stückpreis Differenz - %(currency)s" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Stückpreis Zulieferer - %(currency)s" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "Stückpreis - %(currency)s" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "Es fehlt eine Auswahl für die folgende benötigte Spalte" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "Doppelte Auswahlen gefunden, siehe unten. Reparieren und erneut versuchen." + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "Datei-Felder" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "Spalte entfernen" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "Auswahl duplizieren" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "Kosteninformationen ansehen" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Bestands-Aktionen" @@ -4912,7 +4960,7 @@ msgstr "Benötigt für Aufträge" msgid "Allocated to Orders" msgstr "Zu Bauaufträgen zugeordnet" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "Herstellbar" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "letzte Seriennummer" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "Nach Seriennummer suchen" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "Gesamtkosten" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" @@ -5003,20 +5051,20 @@ msgstr "Interner Preis" msgid "No pricing information is available for this part." msgstr "Keine Preise für dieses Teil verfügbar" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "Varianten" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "Benutzt in" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "Testvorlagen" @@ -5091,7 +5139,7 @@ msgstr "Verkaufspreis anzeigen" msgid "Calculation parameters" msgstr "Berechnungsparameter" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "Zuliefererkosten" @@ -5113,7 +5161,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar." msgid "Internal Cost" msgstr "Interne Kosten" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "Interne Preisspanne hinzufügen" @@ -5133,7 +5181,7 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar." msgid "Set category for the following parts" msgstr "Kategorie für Teile setzen" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5143,6 +5191,43 @@ msgstr "Kein Bestand" msgid "Low Stock" msgstr "niedriger Bestand" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "Zurück zur Stückliste" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "Stückliste hochladen" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "Anforderungen für Stückliste-Datei" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "Die Stückliste-Datei muss die aufgeführten Spalten enthalten; siehe" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "Vorlage für Stückliste" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "Jedes Teil muss bereits in der Datenbank bestehen" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "Neue Teilevariante anlegen" @@ -5156,104 +5241,96 @@ msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'." msgid "Unknown database" msgstr "Unbekannte Datenbank" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "Teil-Kategorie auswählen" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "Kategorie für {n} Teile setzen" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "Referenzen zuteilen" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "Kein(e)" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "Teil-QR-Code" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "Teilbild auswählen" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "Teilbild aktualisiert" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "Teilbild nicht gefunden" -#: part/views.py:775 -msgid "Match Parts" -msgstr "Teile zuordnen" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "Stückliste exportieren" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "Löschen des Teils bestätigen" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "Teil wurde gelöscht" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "Teil-Kategorie wurde gelöscht" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "neue Preisstaffel hinzufügt" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "Interne Preisspanne bearbeiten" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "Interne Preisspanne löschen" @@ -5287,27 +5364,27 @@ msgstr "" #: plugin/models.py:47 msgid "Is the plugin active" -msgstr "" +msgstr "Ist das Plugin aktiv" #: plugin/models.py:199 msgid "Plugin" -msgstr "" +msgstr "Plugin" #: plugin/samples/integration/sample.py:42 msgid "Enable PO" -msgstr "" +msgstr "Bestellungen aktivieren" #: plugin/samples/integration/sample.py:43 msgid "Enable PO functionality in InvenTree interface" -msgstr "" +msgstr "Kauf-Funktionalität in InvenTree aktivieren" #: plugin/samples/integration/sample.py:48 msgid "API Key" -msgstr "" +msgstr "API-Schlüssel" #: plugin/samples/integration/sample.py:49 msgid "Key required for accessing external API" -msgstr "" +msgstr "Schlüssel für den Zugriff auf das externe API" #: plugin/samples/integration/sample.py:52 msgid "Numerical" @@ -5455,12 +5532,12 @@ msgid "Stock Item Test Report" msgstr "Lagerartikel Test-Bericht" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "Seriennummer" @@ -5481,7 +5558,7 @@ msgstr "Ergebnis" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "Datum" @@ -5499,71 +5576,67 @@ msgid "Installed Items" msgstr "Verbaute Objekte" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "Seriennummer" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "Ablaufdatum" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "Ablaufdatum für diesen Lagerartikel" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "Lagerort für serial" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "Seriennummern" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "Anzahl der eindeutigen Seriennummern (muss mit der Anzahl übereinstimmen)" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr " Transaktionsnotizen hinzufügen (optional)" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "Lagerartikel für Einbau" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "Anzahl darf die verfügbare Anzahl nicht überschreiten" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "Ziel Lagerort für unverbaute Objekte" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "nicht mehr verbauen bestätigen" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "Entfernen der verbauten Lagerartikel bestätigen" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "Besitzer" @@ -5625,7 +5698,7 @@ msgstr "Wo wird dieses Teil normalerweise gelagert?" msgid "Packaging this stock item is stored in" msgstr "Die Verpackung dieses Lagerartikel ist gelagert in" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "verbaut in" @@ -5735,7 +5808,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "Artikel duplizeren" @@ -5771,7 +5844,7 @@ msgstr "Anhang muss für diesen Test hochgeladen werden" msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "Testergebnis" @@ -5808,7 +5881,7 @@ msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})" msgid "Enter serial numbers for new items" msgstr "Seriennummern für neue Teile eingeben" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "Ziel-Bestand" @@ -5820,63 +5893,79 @@ msgstr "Optionales Notizfeld" msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "Seriennummern existieren bereits" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "Artikel ist einem Kundenauftrag zugeordnet" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "Ausgewählte Firma ist kein Kunde" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" @@ -5921,22 +6010,14 @@ msgstr "Testdaten hinzufügen" msgid "Installed Stock Items" msgstr "Installierte Lagerartikel" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "Testergebnis bearbeiten" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "Testergebnis löschen" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5997,129 +6078,129 @@ msgstr "Lagerartikel deinstallieren" msgid "Uninstall" msgstr "Deinstallieren" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "Installieren" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "in Variante ändern" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "Lagerartikel duplizieren" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "Lagerartikel bearbeiten" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "Lagerartikel löschen" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "vorherige Seite" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "Zur vorherigen Seriennummer wechseln" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "nächste Seite" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "Zur nächsten Seriennummer wechseln" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "abgelaufen" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "überfällig" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern." -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden." -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht." -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden." -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "Kein Lagerort gesetzt" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "Barcode-Bezeichner" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "Elternposition" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "Kein Hersteller ausgewählt" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "Tests" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "Bestandsstatus bearbeiten" @@ -6132,39 +6213,6 @@ msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel löschen wollen?" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "Damit werden %(qty)s Elemente vom Bestand von %(full_name)s entfernt." -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "Einen weiteren Lagerartikel in dieses Teil installiert." - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "Dieser Lagerartikel ist aktuell vorhanden" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "Der Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "Diesen Lagerartikel in einem anderen Lagerartikel installieren." - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "Das diesem Lagerartikel zugeordnete Teil gehört zur Stückliste eines anderen Teils" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "Dieser Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." @@ -6249,7 +6297,7 @@ msgstr "Untergeordnete Objekte" msgid "The following stock items will be uninstalled" msgstr "Die folgenden Lagerartikel werden nicht mehr verbaut" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "Lagerartikel umwandeln" @@ -6270,11 +6318,11 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag löschen wollen?" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "Lagerartikel-Ort bearbeiten" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)" @@ -6302,59 +6350,63 @@ msgstr "alle Testdaten löschen" msgid "Confirm test data deletion" msgstr "Löschen Testdaten bestätigen" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "Bestätigungsbox bestätigen" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "Lagerartikel-QR-Code" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "Lagerartikel deinstallieren" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "Bestands-Anpassung bestätigen" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "Lagerartikel deinstalliert" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "Lagerartikel bearbeiten" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "Neuen Lagerort erstellen" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "Neuen Lagerartikel hinzufügen" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "Bestand duplizieren" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "Anzahl kann nicht negativ sein" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "Bestand-Lagerort löschen" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "Lagerartikel löschen" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "Bestand-Tracking-Eintrag löschen" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "Bestand-Verfolgungs-Eintrag bearbeiten" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "Bestand-Verfolgungs-Eintrag hinzufügen" @@ -6519,7 +6571,7 @@ msgstr "URLs" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format msgid "The Base-URL for this plugin is %(base)s." -msgstr "Die Basis-URL für dieses Plugin ist %(base)s." +msgstr "" #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" @@ -6529,15 +6581,15 @@ msgstr "In neuem Tab öffnen" msgid "Part Settings" msgstr "Teil-Einstellungen" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "Teileimport" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "Teil importieren" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "Teil-Parametervorlage" @@ -6566,7 +6618,7 @@ msgstr "Admin" #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" -msgstr "" +msgstr "Autor" #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:43 @@ -6579,15 +6631,15 @@ msgstr "Inaktive Plugins" #: templates/InvenTree/settings/plugin.html:115 msgid "Plugin Error Stack" -msgstr "" +msgstr "Plugin-Fehlerstapel" #: templates/InvenTree/settings/plugin.html:124 msgid "Stage" -msgstr "" +msgstr "Stufe" #: templates/InvenTree/settings/plugin.html:126 msgid "Message" -msgstr "" +msgstr "Meldung" #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format @@ -6608,11 +6660,11 @@ msgstr "Lizenz" #: templates/InvenTree/settings/plugin_settings.html:71 msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." -msgstr "" +msgstr "Die Code-Informationen werden vom neuesten Git Commit für dieses Plugin eingelesen. Es spiegelt möglicherweise nicht die offiziellen Versionsnummern oder Informationen wider, sondern den tatsächlich laufenden Code." #: templates/InvenTree/settings/plugin_settings.html:77 msgid "Package information" -msgstr "" +msgstr "Paketinformationen" #: templates/InvenTree/settings/plugin_settings.html:83 msgid "Installation method" @@ -6650,11 +6702,11 @@ msgstr "Commit-Nachricht" #: templates/InvenTree/settings/plugin_settings.html:117 msgid "Sign Status" -msgstr "" +msgstr "Signaturstatus" #: templates/InvenTree/settings/plugin_settings.html:122 msgid "Sign Key" -msgstr "" +msgstr "Signatur Schlüssel" #: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" @@ -6665,45 +6717,45 @@ msgstr "Bestellungs-Einstellungen" msgid "Report Settings" msgstr "Berichts-Einstellungen" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "Kein Wert angegeben" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "Einstellungen ändern" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" -msgstr "" +msgstr "Plugin-Einstellungen bearbeiten" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "Allgemeine Einstellungen bearbeiten" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "Benutzereinstellungen bearbeiten" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "Keine Kategorie-Parametervorlagen gefunden" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "Vorlage bearbeiten" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "Vorlage löschen" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "Keine Teilparametervorlagen gefunden" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "ID" @@ -6843,7 +6895,7 @@ msgstr "Sie können sich mit einem der folgenden Drittanbieterkonten bei Ihrem K #: templates/InvenTree/settings/user.html:157 msgid "You currently have no social network accounts connected to this account." -msgstr "" +msgstr "Du hast zurzeit keine sozialen Netzwerke mit diesem Konto verbunden." #: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" @@ -6851,35 +6903,35 @@ msgstr "Drittanbieter-Konto hinzufügen" #: templates/InvenTree/settings/user.html:172 msgid "Multifactor" -msgstr "" +msgstr "Multifaktor" #: templates/InvenTree/settings/user.html:177 msgid "You have these factors available:" -msgstr "" +msgstr "Sie haben folgende Faktoren zur Verfügung:" #: templates/InvenTree/settings/user.html:187 msgid "TOTP" -msgstr "" +msgstr "TOTP" #: templates/InvenTree/settings/user.html:193 msgid "Static" -msgstr "" +msgstr "Statisch" #: templates/InvenTree/settings/user.html:202 msgid "You currently do not have any factors set up." -msgstr "" +msgstr "Sie haben derzeit keine Faktoren eingerichtet." #: templates/InvenTree/settings/user.html:209 msgid "Change factors" -msgstr "" +msgstr "Faktoren ändern" #: templates/InvenTree/settings/user.html:210 msgid "Setup multifactor" -msgstr "" +msgstr "Multifaktor einrichten" #: templates/InvenTree/settings/user.html:212 msgid "Remove multifactor" -msgstr "" +msgstr "Multifaktor entfernen" #: templates/InvenTree/settings/user.html:220 msgid "Active Sessions" @@ -6983,7 +7035,7 @@ msgstr "Hilf bei der Übersetzung!" #: templates/InvenTree/settings/user_display.html:102 #, python-format msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "Die Übersetzung von InvenTree wird von Nutzern mit Crowdin betrieben. Wir ermutigen zur und freuen uns über jeden Mithilfe!" +msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" @@ -6998,10 +7050,11 @@ msgid "InvenTree Version Information" msgstr "InvenTree-Versionsinformationen" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "Schliessen" @@ -7069,12 +7122,12 @@ msgstr "E-Mail-Adresse bestätigen" #: templates/account/email_confirm.html:16 #, python-format msgid "Please confirm that %(email)s is an email address for user %(user_display)s." -msgstr "Bitte bestätigen Sie, dass %(email)s eine E-Mail Adresse für den Benutzer %(user_display)s ist." +msgstr "" #: templates/account/email_confirm.html:27 #, python-format msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." -msgstr "Dieser E-Mail Bestätigungslink ist abgelaufen oder ungültig. Bitte fordern Sie eine neue E-Mail Bestätigung an." +msgstr "" #: templates/account/login.html:6 templates/account/login.html:16 #: templates/account/login.html:39 @@ -7086,13 +7139,13 @@ msgstr "Einloggen" msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" -msgstr "Bitte melden Sie sich mit einem Ihrer bestehenden Drittkonten an oder registrieren Sie sich für ein Konto und melden Sie sich unten an:" +msgstr "" #: templates/account/login.html:25 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." -msgstr "Wenn Sie noch kein Konto erstellt haben, dann bitteregistrieren Sie sich zuerst." +msgstr "" #: templates/account/login.html:42 msgid "Forgot Password?" @@ -7147,7 +7200,7 @@ msgstr "Ungültiger Schlüssel" #: templates/account/password_reset_from_key.html:11 #, python-format msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "Der Link zum Zurücksetzen des Kennworts war ungültig, da er bereits verwendet wurde. Bitte fordern Sie eine neue Passwortwiederherstellung an." +msgstr "" #: templates/account/password_reset_from_key.html:18 msgid "Change password" @@ -7164,7 +7217,7 @@ msgstr "Anmelden" #: templates/account/signup.html:13 #, python-format msgid "Already have an account? Then please sign in." -msgstr "Haben Sie bereits ein Konto? Dann melden Sie sich bitte an." +msgstr "" #: templates/account/signup.html:27 msgid "Or use a SSO-provider for signup" @@ -7176,11 +7229,11 @@ msgstr "Im Administrationsbereich anzeigen" #: templates/allauth_2fa/authenticate.html:5 msgid "Two-Factor Authentication" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung" #: templates/allauth_2fa/authenticate.html:12 msgid "Authenticate" -msgstr "" +msgstr "Authentifizieren" #: templates/allauth_2fa/backup_tokens.html:6 msgid "Two-Factor Authentication Backup Tokens" @@ -7277,14 +7330,14 @@ msgid "The following parts are low on required stock" msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "Benötigte Menge" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Verfügbar" @@ -7327,11 +7380,11 @@ msgstr "Der angegebene Server muss erreichbar sein" msgid "Remote image must not exceed maximum allowable file size" msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Keine Antwort" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "keine Antwort vom InvenTree Server" @@ -7343,27 +7396,27 @@ msgstr "Fehler 400: Fehlerhafte Anfrage" msgid "API request returned error code 400" msgstr "Fehler-Code 400 zurückgegeben" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Fehler 401: Nicht Angemeldet" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Authentication Kredentials nicht angegeben" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Fehler 403: keine Berechtigung" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Fehlende Berechtigung für diese Aktion" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Fehler 404: Ressource nicht gefunden" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden" @@ -7375,11 +7428,11 @@ msgstr "Fehler 405: Methode nicht erlaubt" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Fehler 408: Zeitüberschreitung" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Verbindungszeitüberschreitung bei der Datenanforderung" @@ -7448,7 +7501,7 @@ msgid "Unknown response from server" msgstr "Unbekannte Antwort von Server erhalten" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "Ungültige Antwort von Server" @@ -7476,7 +7529,7 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barco msgid "Unlink" msgstr "Entfernen" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "Lagerartikel entfernen" @@ -7518,327 +7571,369 @@ msgstr "In Lagerorten buchen" msgid "Barcode does not match a valid location" msgstr "Barcode entspricht keinem Lagerort" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "Vorlage einer Stückliste herunterladen" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "Format" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "Dateiformat auswählen" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "Kaskadierend" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "Kaskadierende Stückliste herunterladen" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "Ebenen" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "Maximale Anzahl an Ebenen für Stückliste-Export auswählen (0 = alle Ebenen)" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "Parameter-Daten einschließen" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "Bestand einschließen" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "Teil-Bestand in Stückliste-Export einschließen" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "Herstellerdaten einschließen" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "Teil-Herstellerdaten in Stückliste-Export einschließen" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "Zulieferer einschließen" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "Zulieferer-Daten in Stückliste-Export einschließen" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "Ersatzteil entfernen" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "Sind Sie sicher, dass Sie dieses Ersatzteil entfernen möchten?" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "Ersatzteil entfernen" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "Ersatzteil hinzufügen" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "Stücklisten Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "Varianten erlaubt" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "Unterbaugruppe öffnen" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "Ersatzteile" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "Kaufpreisspanne" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "Durchschnittlicher Kaufpreis" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "Stückliste anzeigen" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "Stücklisten-Position kontrollieren" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "Diese Position wurde kontrolliert" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "Stücklisten-Position bearbeiten" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "Stücklisten-Position löschen" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "benötigtes Teil" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "Geerbt von übergeordneter Stückliste" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "Bauauftrag bearbeiten" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "Bauauftrag erstellen" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "Bauauftrag ist unvollständig" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "Bauauftrag fertigstellen" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "Nächste verfügbare Seriennummer" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "Letzte Seriennummer" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "Die Stückliste enthält verfolgbare Teile" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "Nachverfolgbare Teile können Seriennummern haben" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "Seriennummeren für mehrere einzelne Endprodukte angeben" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "Endprodukt anlegen" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "Lagerartikel zu diesem Endprodukt zuweisen" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "Bestand von Endpordukt zurücknehmen" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "Endprodukt fertigstellen" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "Endprodukt entfernen" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfernen möchten?" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "Lagerartikel zurücknehmen" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "Endprodukte auswählen" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "Mindestens ein Endprodukt muss ausgewählt werden" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "Endprodukt" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "Keine Allokationen für Bauauftrag gefunden" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "Standort nicht angegeben" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "Keine aktiven Endprodukte gefunden" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "Zuordnung bearbeiten" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "Zuordnung entfernen" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "Anzahl pro" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "Zugeordnet" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "Bestand zuweisen" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Teile auswählen" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "Sie müssen mindestens ein Teil auswählen" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu nehmen)" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "Bestandszuordnung bestätigen" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "Lagerartikel für Bauauftrag zuweisen" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "Keine passenden Lagerstandorte" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "Keine passenden Lagerbestände" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "Keine Bauaufträge passen zur Anfrage" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "Keine Information" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "Keine Teile zugeordnet zu" @@ -7968,48 +8063,60 @@ msgstr "Filter entfernen" msgid "Create filter" msgstr "Filter anlegen" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "Aktion verboten" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "Erstellvorgang nicht erlaubt" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "Updatevorgang nicht erlaubt" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "Löschvorgang nicht erlaubt" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "Anzeigevorgang nicht erlaubt" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "Gib eine gültige Nummer ein" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Fehler in Formular" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "Eingabe leeren" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "JA" @@ -8019,7 +8126,7 @@ msgid "NO" msgstr "NEIN" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "Lagerartikel auswählen" @@ -8074,7 +8181,7 @@ msgid "Cancel" msgstr "Abbrechen" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "Abschicken" @@ -8099,31 +8206,31 @@ msgstr "Akzeptieren" msgid "Loading Data" msgstr "Lade Daten" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "ungültige Antwort vom Server" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "Formulardaten fehlen bei Serverantwort" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "Formulardaten fehlerhaft" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "JSON Antwort enthält keine Formulardaten" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "Fehler 400: Ungültige Anfrage" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "Fehler 400 von Server erhalten" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "Fehler bei Formulardaten-Anfrage" @@ -8143,10 +8250,6 @@ msgstr "Standort-ID" msgid "Build ID" msgstr "Bauauftrag-ID" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "Teil-ID" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8212,7 +8315,7 @@ msgstr "Mindestens eine Position muss ausgewählt werden" msgid "Quantity to receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "Status" @@ -8346,7 +8449,7 @@ msgid "Delete Stock Allocation" msgstr "Bestands-Zuordnung löschen" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "an Kunde versand" @@ -8547,12 +8650,12 @@ msgid "No category" msgstr "Keine Kategorie" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "Bestand niedrig" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "Listenansicht" @@ -8560,7 +8663,7 @@ msgstr "Listenansicht" msgid "Display as grid" msgstr "Rasteransicht" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "Baumansicht" @@ -8568,7 +8671,7 @@ msgstr "Baumansicht" msgid "Subscribed category" msgstr "Abonnierte Kategorie" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "Pfad" @@ -8576,11 +8679,12 @@ msgstr "Pfad" msgid "No test templates matching query" msgstr "Keine zur Anfrage passenden Testvorlagen" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "Testergebnis löschen" @@ -8689,347 +8793,375 @@ msgstr "Aufträge auswählen" msgid "Sales Order(s) must be selected before printing report" msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "Lagerartikel serialisieren" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "Nächste verfügbare Seriennummer" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "Letzte Seriennummer" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "Lager-Serialisierung bestätigen" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "Neuer Lagerstandort" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "Dieser Teil kann nicht serialisiert werden" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "Neuer Lagerartikel erstellt" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "Mehrere Lagerartikel erstellt" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "Seriennummer finden" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "Seriennummer eingeben" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "Eine Seriennummer eingeben" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "Keine passende Seriennummer" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "Mehrere Ergebnisse gefunden" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "Bestand exportieren" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "Einschließlich Unterstandorte" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "Lagerartikel in untergeordneten Lagerorten einschließen" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "Zusammenführung der Artikel bestätigen" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "Artikel zusammenführen" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "Anzahl" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "Entfernen" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "Hinzufügen" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "Sie müssen mindestens einen Lagerartikel auswählen" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "Testergebnis bearbeiten" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "Testergebnis löschen" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "In Arbeit" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "Lagerartikel in anderem Element verbaut" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "Lagerartikel abgewiesen" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "Lagerartikel verloren" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "Lagerartikel zerstört" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "gelöscht" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "Inventur" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerartikel" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "Teile" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "lose" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "Lagerorte" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "unbekannter Lagerort" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "Status setzen" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "Status Code setzen" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "Ungültiges Datum" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "Details" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "Standort nicht mehr vorhanden" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "Lagerartikel existiert nicht mehr" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "Tracking-Eintrag bearbeiten" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "Tracking-Eintrag löschen" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "Keine installierten Elemente" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "Lagerartikel entfernen" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "Der Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "Nachverfolgbares Teil" @@ -9057,12 +9189,12 @@ msgstr "Lagerorte einschließen" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "Unterkategorien einschließen" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "Abonniert" @@ -9104,7 +9236,7 @@ msgid "Batch code" msgstr "Losnummer" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "Aktive Teile" @@ -9189,47 +9321,47 @@ msgstr "Zeige abgelaufene Lagerartikel" msgid "Show stock which is close to expiring" msgstr "Bestand, der bald ablaufen, anzeigen" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "Bauauftrags-Status" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "Mir zugewiesen" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "Bestellstatus" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "ausstehend" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "Hat IPN" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "Teil hat Interne Teilenummer" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "verfügbarer Bestand" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "Käuflich" @@ -9482,35 +9614,35 @@ msgstr "Berechtigungen" msgid "Important dates" msgstr "wichtige Daten" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "Gruppe" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "Ansicht" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "Ändern" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 8caeacf059..51ac59a646 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -34,9 +34,9 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "" @@ -119,133 +119,133 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "" @@ -253,83 +253,127 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -689,7 +675,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "" @@ -812,7 +799,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 50f451f696..d7ac9a9b72 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -34,9 +34,9 @@ msgstr "No se encontró ninguna acción coincidente" msgid "Enter date" msgstr "Ingrese fecha" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Confirmar" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Duplicar serie: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" @@ -119,133 +119,133 @@ msgstr "No se encontraron números de serie" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "Falta archivo" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "Falta enlace externo" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Adjunto" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Seleccionar archivo a adjuntar" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Enlace" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Enlace a URL externa" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Comentario" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Comentario de archivo" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Usuario" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "fecha de subida" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "El nombre del archivo no debe estar vacío" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Directorio adjunto inválido" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "El nombre de archivo contiene caracteres no válidos '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Falta extensión del nombre de archivo" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Ya existe un adjunto con este nombre de archivo" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Error renombrando archivo" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Elección no válida" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "principal" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Debe ser un número válido" @@ -253,83 +253,127 @@ msgstr "Debe ser un número válido" msgid "Filename" msgstr "Nombre de archivo" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Alemán" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Griego" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Inglés" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Español" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "Español (México)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Francés" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Hebreo" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Japonés" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Holandés" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Noruego" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Polaco" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "Portugués" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Ruso" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Sueco" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Tailandés" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Chino" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "Las comprobaciones de estado del sistema InvenTree fallaron" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "Pendiente" @@ -456,7 +500,7 @@ msgstr "Separar del artículo principal" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "Artículos de stock combinados" @@ -484,41 +528,41 @@ msgstr "Recibido contra la orden de compra" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "No es un código de moneda válido" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Carácter inválido en el nombre del artículo" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "El IPN debe coincidir con la expresión regular {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "La referencia debe coincidir con la expresión regular {pattern}" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "Carácter ilegal en el nombre ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "El valor excedente no debe ser negativo" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "El excedente no debe superar el 100%" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" -msgstr "El excedente debe ser un valor entero o un porcentaje" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" #: InvenTree/views.py:538 msgid "Delete Item" @@ -584,69 +628,11 @@ msgstr "La comprobación (hash) del código de barras ya corresponde a un Elemen msgid "Barcode associated with Stock Item" msgstr "Código de barras asignado al Elemento del Stock" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Cantidad" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Números de serie" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "¿Deseas cancelar?" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "Opción no válida para el armado principal" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "Orden de Producción" @@ -665,7 +651,7 @@ msgstr "Orden de Producción" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "Referencia de Orden de Producción" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referencia" @@ -689,7 +675,7 @@ msgstr "Referencia" msgid "Brief description of the build" msgstr "Breve descripción de la producción" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "Armado Principal" @@ -702,30 +688,31 @@ msgstr "Orden de Producción a la cual esta producción pertenece" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Parte" @@ -741,7 +728,7 @@ msgstr "Referencia de Orden de Venta" msgid "SalesOrder to which this build is allocated" msgstr "Ordenes de Venta a la cual esta producción pertenece" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "Ubicación de origen" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "Numero de lote" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Fecha de Creación" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Fecha de finalización" @@ -812,7 +799,7 @@ msgstr "Fecha de finalización" msgid "completed by" msgstr "terminado por" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "Emitido por" @@ -820,12 +807,12 @@ msgstr "Emitido por" msgid "User who issued this build order" msgstr "El usuario que emitió esta orden" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "Responsable" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "Link externo" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "Notas" @@ -864,208 +851,284 @@ msgstr "Notas" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "Artículo de stock sobreasignado" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "Cantidad asignada debe ser mayor que cero" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "La cantidad debe ser 1 para el stock serializado" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "Artículo de stock seleccionado no encontrado en BOM" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "Artículo de stock" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "Producto original de stock" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Cantidad" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "Instalar en" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "Artículo de stock de destino" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "Salida de armado no coincide con armado principal" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "Ubicación" - -#: build/serializers.py:191 -msgid "Location for completed build outputs" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "Estado" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Números de serie" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Ubicación" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Estado" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "Debe proporcionar adjudicación de artículos" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "Vencido" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Completado" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "Orden de Venta" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Emitido por" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "Salidas incompletas" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Destinación" @@ -1234,13 +1277,13 @@ msgstr "Destinación" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "Partes asignadas" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "Lote" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "Desasignar stock" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" -msgstr "Completar elementos seleccionados" +msgid "Complete selected build outputs" +msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Adjuntos" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "Todos los artículos de stock no rastreados han sido asignados" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "Artículos Pendientes" msgid "Completed Items" msgstr "Artículos Completados" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "Número de días en que artículos de stock se consideran obsoletos antes de caducar" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "Número de elementos de stock recientes a mostrar en la página de índice" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "Mostrar artículos de stock bajo en la página de inicio" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "Mostrar artículos agotados en la página de inicio" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar elementos de stock necesarios para construir en la página de inicio" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "Mostrar artículos de stock caducados en la página de inicio" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "Mostrar elementos de stock obsoletos en la página de inicio" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "Artículos de Stock Asignados" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Artículos de Stock" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "Número de artículos recibidos" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "Completar este pedido significa que los artículos de orden y línea ya msgid "After placing this purchase order, line items will no longer be editable." msgstr "Después de realizar esta orden de compra, los artículos de línea ya no serán editables." -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "Parte inválida para parte principal" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "Parte principal" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" -msgstr "Seleccionar parte principal" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" +msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "Seleccionar parte principal" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "Artículo BOM principal" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "Último Inventario" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "Ningún inventario realizado" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "Artículo principal" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "Heredado de BOM principal" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "Ubicación del stock principal" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "Inventario" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "Mostrar artículos de stock que han caducado" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "Permiso para ver artículos" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "Permiso para añadir artículos" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "Permisos para editar artículos" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "Permiso para eliminar artículos" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 85b16f7fea..45d149fe65 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:10\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -34,9 +34,9 @@ msgstr "Aucune action correspondante trouvée" msgid "Enter date" msgstr "Entrer la date" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Confirmer" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Dupliquer le numéro de série: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" @@ -119,133 +119,133 @@ msgstr "Aucun numéro de série trouvé" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "Fichier manquant" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "Lien externe manquant" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Pièce jointe" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Lien" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Lien vers une url externe" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Commentaire" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Utilisateur" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "date de chargement" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Le nom de fichier ne doit pas être vide" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Répertoire de pièce jointe invalide" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Le nom de fichier contient le caractère illégal '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Extension manquante du nom de fichier" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Une pièce jointe avec ce nom de fichier existe déjà" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Erreur lors du renommage du fichier" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Nom" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Description" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Description (facultative)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "parent" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Doit être un nombre valide" @@ -253,83 +253,127 @@ msgstr "Doit être un nombre valide" msgid "Filename" msgstr "Nom du fichier" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "Valeur non valide" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Allemand" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Greek" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Anglais" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Spanish" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "Espagnol (Mexique)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Français" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Hebrew" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Italian" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Japanese" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Korean" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Dutch" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Norwegian" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "Portugais" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Russian" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Swedish" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Thai" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Vietnamese" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Chinese" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "Échec des contrôles de santé du système" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "En attente" @@ -456,7 +500,7 @@ msgstr "Séparer de l'élément parent" msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "Articles de stock fusionnés" @@ -484,41 +528,41 @@ msgstr "Reçu contre bon de commande" msgid "Production" msgstr "Fabrication" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "Code de devise invalide" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Caractère invalide dans le nom de la pièce" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "L'IPN doit correspondre au modèle de regex {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "La référence doit correspondre au modèle {pattern}" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "Caractère invalide dans le nom ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "La valeur de surplus ne doit pas être négative" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "Le surplus ne doit pas dépasser 100%" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" -msgstr "La valeur de surplus doit être un nombre entier ou un pourcentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" #: InvenTree/views.py:538 msgid "Delete Item" @@ -584,69 +628,11 @@ msgstr "Le code-barres correspond déjà à l'objet Stock Item" msgid "Barcode associated with Stock Item" msgstr "Code-barres associé à l'article en stock" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Quantité" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "Entrer la quantité désiré pour la fabrication" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Numéros de série" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "Entrer les numéros de séries pour la fabrication" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "Confirmer la création de la sortie de l'assemblage" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "Confirmer la supression de la fabrication" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "Confirmer l'annulation" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "Confirmer l'annulation de la fabrication" @@ -657,7 +643,7 @@ msgstr "Choix invalide pour la fabrication parente" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "Ordre de Fabrication" @@ -665,7 +651,7 @@ msgstr "Ordre de Fabrication" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Référence" @@ -689,7 +675,7 @@ msgstr "Référence" msgid "Brief description of the build" msgstr "Brève description de la fabrication" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "Fabrication parente" @@ -702,30 +688,31 @@ msgstr "BuildOrder associé a cette fabrication" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Pièce" @@ -741,7 +728,7 @@ msgstr "Bon de commande de référence" msgid "SalesOrder to which this build is allocated" msgstr "Commande de vente à laquelle cette construction est allouée" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "Emplacement d'origine" @@ -782,15 +769,15 @@ msgstr "État de la construction" msgid "Build status code" msgstr "Code de statut de construction" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "Code de lot" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Date de création" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Date d'achèvement" @@ -812,7 +799,7 @@ msgstr "Date d'achèvement" msgid "completed by" msgstr "achevé par" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "Émis par" @@ -820,12 +807,12 @@ msgstr "Émis par" msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "Responsable" @@ -837,26 +824,26 @@ msgstr "Utilisateur responsable de cette commande de construction" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "Lien Externe" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "Notes" @@ -864,208 +851,284 @@ msgstr "Notes" msgid "Extra build notes" msgstr "Notes de construction supplémentaires" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" -msgstr "" +msgstr "Pas d'ordre de production défini" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" -msgstr "" +msgstr "L'ordre de production a déjà été réalisé" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" -msgstr "" +msgstr "L'ordre de production de correspond pas à l'ordre de commande" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "La quantité doit être de 1 pour stock sérialisé" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "Assemblage" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "Construction à laquelle allouer des pièces" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" -msgstr "" +msgstr "Stock d'origine de l'article" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Quantité" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "Quantité de stock à allouer à la construction" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" -msgstr "" +msgstr "Stock de destination de l'article" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "Sortie d'assemblage" -#: build/serializers.py:146 -msgid "Build output does not match the parent build" -msgstr "" - #: build/serializers.py:150 +msgid "Build output does not match the parent build" +msgstr "L'ordre de production ne correspond pas à l'ordre parent" + +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 -msgid "This build output has already been completed" -msgstr "" - #: build/serializers.py:158 +msgid "This build output has already been completed" +msgstr "Cet ordre de production a déjà été produit" + +#: build/serializers.py:164 msgid "This build output is not fully allocated" -msgstr "" +msgstr "Cet ordre de production n'est pas complètement attribué" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "Emplacement" +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "Entrer la quantité désiré pour la fabrication" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "État" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "L'article doit être en stock" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Numéros de série" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "Entrer les numéros de séries pour la fabrication" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "Une liste d'ordre de production doit être fourni" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Emplacement" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "Emplacement des ordres de production achevés" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "État" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "Accepter les non-alloués" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "Accepter les articles de stock qui n'ont pas été complètement alloués à cette ordre de production" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "Le stock requis n'a pas encore été totalement alloué" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "Accepter les incomplèts" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "Accepter que tous les ordres de production n'aient pas encore été achevés" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "La quantité nécessaire n'a pas encore été complétée" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "L'ordre de production a des sorties incomplètes" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "L'article doit être en stock" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantité disponible ({q}) dépassée" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "Stock requis pour la commande de construction" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "Modifier l'assemblage" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "Annuler l'assemblage" @@ -1105,110 +1168,90 @@ msgstr "Compléter l'assemblage" msgid "Build Description" msgstr "Description de la construction" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Cet ordre de construction est allouée à la commande de vente %(link)s" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Cet ordre de construction est un enfant de l'ordre de construction %(link)s" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "L'ordre de construction est prêt à être marqué comme terminé" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "L'ordre de construction ne peut pas être achevé car il reste des outputs en suspens" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "Le nombre de constructions requis n'a pas encore été atteint" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "Date Cible" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "Cette construction était due le %(target)s" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "En retard" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Terminé" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "Commandes" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Émis par" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" -msgstr "" +msgstr "Sorties incomplètes" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "L'ordre de fabrication ne peut pas être achevé car il reste des outputs en suspens" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "La BOM contient des pièces traçables" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "Les pièces traçables peuvent avoir des numéros de série spécifiés" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "Êtes-vous sûr de vouloir annuler cette construction?" @@ -1219,28 +1262,28 @@ msgstr "Détails de la construction" #: build/templates/build/detail.html:39 msgid "Stock Source" -msgstr "" +msgstr "Stock d'origine" #: build/templates/build/detail.html:44 msgid "Stock can be taken from any available location." -msgstr "" +msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible." -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Destination" #: build/templates/build/detail.html:57 msgid "Destination location not specified" -msgstr "" +msgstr "Stockage de destination non défini" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "Pièces allouées" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "Créé le" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "Désallouer le stock" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Pieces jointes" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "Notes de construction" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "Modifier les notes" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "Allocation terminée" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "Nouvel ordre de construction" @@ -1406,51 +1457,11 @@ msgstr "Articles en attente" msgid "Completed Items" msgstr "Articles terminés" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "La construction a été annulée" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "La quantité maximale de sortie est " - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "Les numéros de série existent déjà" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "Cocher la case de confirmation" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "Supprimer l'ordre de construction" @@ -1639,9 +1650,9 @@ msgstr "Copier les templates de paramètres de catégorie" msgid "Copy category parameter templates when creating a part" msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "Template" @@ -1649,9 +1660,9 @@ msgstr "Template" msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "Composant" @@ -1668,7 +1679,7 @@ msgstr "Composant" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "Achetable" @@ -1676,8 +1687,8 @@ msgstr "Achetable" msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "Vendable" @@ -1685,10 +1696,10 @@ msgstr "Vendable" msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "Traçable" @@ -1696,7 +1707,7 @@ msgstr "Traçable" msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "Afficher le prix dans la BOM" msgid "Include pricing information in BOM tables" msgstr "Inclure les informations de prix dans les tableaux de la BOM" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "Afficher les pièces connexes" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "Afficher les pièces connexes à une pièce" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "Créer un stock initial" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "Créer le stock initial lors de la création d'une pièce" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "Prix internes" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "Activer les prix internes pour les pièces" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "Taille de la page" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "Rapports de test" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "jours" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "Préfixe des commandes d'achats" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "Activer les mots de passe oubliés" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "Activer les inscriptions" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "Activer le SSO" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "Activer le SSO sur les pages de connexion" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "Email requis" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "Saisie automatique des utilisateurs SSO" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "Courriel en double" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "Actif" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "Point de contact" msgid "Link to external company information" msgstr "Lien externe vers les informations de l'entreprise" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "Image" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "Fabricant" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "Valeur" @@ -2507,9 +2522,9 @@ msgstr "Valeur" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "Fournisseur" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "coût de base" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "Télécharger l'image depuis l'URL" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "Nouvelle commande achat" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "Nouvelle commande de vente" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "Stock affecté" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "Pièces Internes" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "Fournisseurs" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "Supprimer les pièces du fournisseur" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "Supprimer" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Paramètres" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "Nouveau paramètre" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "Stock" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "Tarif" @@ -2996,7 +3012,7 @@ msgstr "Tarif" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Éléments en stock" @@ -3026,20 +3042,20 @@ msgstr "Entreprises" msgid "New Company" msgstr "Nouvelle Entreprise" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "Commande" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "Commande d’achat" @@ -3276,7 +3292,7 @@ msgstr "Pièce fournisseur" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "Reçu" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "Nombre d'éléments reçus" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "Prix d'achat" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "Statut de la commande" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "Supprimer la colonne" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_wizard/match_fields.html:60 -msgid "Duplicate selection" -msgstr "Dupliquer la sélection" - -#: order/templates/order/order_wizard/match_fields.html:71 -#: order/templates/order/order_wizard/match_parts.html:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "Supprimer la ligne" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "Ligne" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "Supprimer la ligne" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "Les prochains numéros de série disponibles sont" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "Le prochain numéro de série disponible est" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "Le numéro de série le plus récent est" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "Catégorie" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "IPN" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "Révision" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Requis" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "Données" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "Supprimer l'élément" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "Sélectionner une pièce" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "Exporter" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "Supprimer la colonne" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "Dupliquer la sélection" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "Dernier numéro de série" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "Rechercher un numéro de série" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "Tester le modèle" @@ -5089,7 +5137,7 @@ msgstr "Afficher le prix de vente" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "Numéro de série" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "Entrer des numéros de série uniques (ou laisser vide)" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "Numéros de série" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "Numéros de série uniques (doivent correspondre à la quantité)" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "Propriétaire" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "Entrez les numéros de série pour les nouveaux articles" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "Les numéros de série existent déjà" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "Accéder au numéro de série précédent" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "Accéder au numéro de série suivant" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Cet article de stock est sérialisé - il a un numéro de série unique et la quantité ne peut pas être ajustée." -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "Cocher la case de confirmation" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Disponible" @@ -7325,11 +7378,11 @@ msgstr "Le serveur distant doit être accessible" msgid "Remote image must not exceed maximum allowable file size" msgstr "L'image distante ne doit pas excéder la taille maximale autorisée de fichier" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Aucune réponse" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "Aucune réponse du serveur InvenTree" @@ -7341,27 +7394,27 @@ msgstr "Erreur 400: Mauvaise requête" msgid "API request returned error code 400" msgstr "La requête de l'API a retourné le code d'erreur 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Erreur 401: non authentifié" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Informations d’authentification non fournies" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Erreur 403: Permission refusée" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Vous n'avez pas les autorisations requises pour accéder à cette fonction" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Erreur 404: Ressource introuvable" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "La ressource demandée n'a pas pu être trouvée sur le serveur" @@ -7373,11 +7426,11 @@ msgstr "Erreur 405: Méthode non autorisée" msgid "HTTP method not allowed at URL" msgstr "Méthode HTTP non autorisée à l'adresse URL" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Erreur 408: Délai dépassé" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Délai de connexion dépassé lors de la demande de données depuis le serveur" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "Réponse inconnue du serveur" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "Réponse du serveur invalide" @@ -7474,7 +7527,7 @@ msgstr "Ceci supprimera l'association entre cet article de stock et le code-barr msgid "Unlink" msgstr "Délier" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "Supprimer l'article de stock" @@ -7516,327 +7569,369 @@ msgstr "Vérifier dans l'emplacement" msgid "Barcode does not match a valid location" msgstr "Le code-barres ne correspond pas à un emplacement valide" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "Télécharger le template de la BOM" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "Sélectionner un format de fichier" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "En cascade" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "Télécharger la BOM en cascade / à plusieurs niveaux" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "Niveaux" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "Sélectionner le nombre maximum de niveaux de BOM à exporter (0 = tous les niveaux)" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "Inclure les données de paramètre" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "Inclure les données de paramètre de la pièce dans la BOM exporté" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "Inclure les données de stock" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "Prochain numéro de série disponible" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "Dernier numéro de série" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "La BOM contient des pièces traçables" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "Les pièces traçables peuvent avoir des numéros de série spécifiés" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "Annuler" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "Livré au client" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "Aucune catégorie" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "Stock bas" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "Afficher sous forme de liste" @@ -8558,7 +8661,7 @@ msgstr "Afficher sous forme de liste" msgid "Display as grid" msgstr "Afficher sous forme de grille" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "Afficher sous forme d'arborescence" @@ -8566,7 +8669,7 @@ msgstr "Afficher sous forme d'arborescence" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "Chemin d'accès" @@ -8574,11 +8677,12 @@ msgstr "Chemin d'accès" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "Modifier le résultat du test" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "Supprimer le résultat du test" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "Prochain numéro de série disponible" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "Dernier numéro de série" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "Trouver un numéro de série" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "Entrer le numéro de série" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "Entrer un numéro de série" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "Aucun numéro de série correspondant" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "Plus d'un résultat correspondant trouvé" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "Exporter le stock" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "Inclure les sous-emplacements" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "Inclure les articles en stock dans les sous-emplacements" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "Confirmer l'assignation de stock" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "Assigner le stock au client" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "Attention : l'opération de fusion est irréversible" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "Certaines informations seront perdues lors de la fusion des articles en stock" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "L'historique des transactions de stock sera supprimé pour les éléments fusionnés" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "Les informations sur la pièce du fournisseur seront supprimées pour les éléments fusionnés" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "Confirmer la fusion de l'article en stock" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "Fusionner les articles en stock" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "Transférer le stock" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "Transférer" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "Compter le stock" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "Compter" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "Supprimer du stock" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "Supprimer" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "Ajouter du stock" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "Ajouter" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "Supprimer le stock" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "La quantité ne peut pas être ajustée pour un stock sérialisé" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "Spécifiez la quantité du stock" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "Vous devez sélectionner au moins un article en stock disponible" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "RÉUSSI" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "ÉCHEC" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "AUCUN RÉSULTAT" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "Ajouter un résultat de test" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "Aucun résultat de test trouvé" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "Date du test" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "En production" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "Article en stock installé dans un autre article en stock" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "Assigné à une commande de vente" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "Aucun emplacement de stock défini" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "L'article de stock est en production" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "L'article en stock a été assigné à une commande de vente" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "L'article en stock a été assigné à un client" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "L'article en stock a expiré" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "L'article en stock va bientôt expirer" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "L'article de stock sérialisé a été alloué" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "L'article de stock a été complètement alloué" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "L'article de stock a été partiellement alloué" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "L'article en stock a été installé dans un autre article" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "L'article de stock a été rejeté" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "L'article de stock est perdu" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "L'article de stock est détruit" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "Epuisé" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "Prise d'inventaire" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "Pièce de fournisseur non précisée" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "Aucun article de stock ne correspond à la requête" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "articles" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "lots" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "emplacements" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "Emplacement indéfini" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "Définir l'état du stock" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "Sélectionner le code de statut" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "Le code de statut doit être sélectionné" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "Quantité Allouée" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "Date invalide" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "Détails" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "L'emplacement n'existe plus" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "La commande d'achat n'existe plus" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "Le client n'existe plus" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "L'article de stock n'existe plus" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "Ajouté" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "Supprimé" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "Pièce traçable" @@ -9055,12 +9187,12 @@ msgstr "Inclure les emplacements" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "Inclure les sous-catégories" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "Code de lot" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "Pièces actives" @@ -9187,47 +9319,47 @@ msgstr "Afficher les articles de stock qui ont expiré" msgid "Show stock which is close to expiring" msgstr "Afficher le stock qui est proche de l'expiration" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "État de la construction" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "Assigné à moi" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "État de la commande" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "En suspens" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "Inclure les pièces des sous-catégories" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "A un IPN" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "La pièce a un numéro de pièce interne" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "Afficher les pièces actives" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "Stock disponible" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "Achetable" @@ -9480,35 +9612,35 @@ msgstr "Droits" msgid "Important dates" msgstr "Dates importantes" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "Droit défini" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "Groupe" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "Vue" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "Droit de voir des éléments" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "Droit d'ajouter des éléments" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "Modifier" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "Droit de modifier des élément" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "Droit de supprimer des éléments" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 050d2b4641..d0119cf91c 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 04:45\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -34,9 +34,9 @@ msgstr "פעולה מבוקשת לא נמצאה" msgid "Enter date" msgstr "הזן תאריך סיום" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "אשר" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "" @@ -119,133 +119,133 @@ msgstr "מספרים סידוריים לא נמצאו" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "כמות המספרים הסידוריים ({s}) מוכרים להיות תואמים לכמות ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "קובץ חסר" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "קובץ מצורף" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "בחר קובץ לצירוף" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "קישור" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "קישור חיצוני" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "הערה" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "הערת קובץ" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "משתמש" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "תאריך העלאה" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "חובה למלא שם קובץ" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "תיקיית קובץ שגויה" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "שם הקובץ מכיל תו '{c}' שאינו חוקי" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "שגיאה בשינוי שם פריט" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "שם" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "תיאור" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "תיאור (לא חובה)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "מקור" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" @@ -253,83 +253,127 @@ msgstr "המספר חייב להיות תקין" msgid "Filename" msgstr "שם קובץ" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "גרמנית" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "יוונית" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "אנגלית" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "ספרדית" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "ספרדית (מקסיקנית)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "צרפתית" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "עברית" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "איטלקית" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "יפנית" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "קוריאנית" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "הולנדית" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "נורווגית" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "פולנית" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "פורטוגזית" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "רוסית" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "שוודית" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "תאילנדית" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "טורקית" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "ווייטנאמית" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "סינית" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "בהמתנה" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "ייצור" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "קוד מטבע לא מאושר" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "כמות" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "מספרים סידוריים" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "מקט" @@ -689,7 +675,7 @@ msgstr "מקט" msgid "Brief description of the build" msgstr "תיאור קצר אודות הבנייה" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "מקור הבנייה" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "רכיב" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "" @@ -812,7 +799,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "כמות" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "מספרים סידוריים" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 0c357b94cc..146938fa46 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -34,9 +34,9 @@ msgstr "Aksi tidak ditemukan" msgid "Enter date" msgstr "Masukkan tanggal" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Konfirmasi" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "" @@ -119,133 +119,133 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "" @@ -253,83 +253,127 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -689,7 +675,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "" @@ -812,7 +799,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 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 6750a4152a..ec2e7c82fd 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -34,9 +34,9 @@ msgstr "Nessuna azione corrispondente trovata" msgid "Enter date" msgstr "Inserisci la data" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Conferma" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Seriale Duplicato: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" @@ -119,133 +119,133 @@ msgstr "Nessun numero di serie trovato" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "File mancante" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "Link esterno mancante" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Allegato" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Seleziona file da allegare" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Link" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Link a URL esterno" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Commento" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Commento del file" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Utente" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "data caricamento" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Il nome del file non deve essere vuoto" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Directory allegati non valida" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Il nome del file contiene caratteri non validi '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Nome file estensione mancante" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Esiste già un allegato con questo nome di file" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Errore nella rinominazione del file" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Nome" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Descrizione" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Descrizione (opzionale)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "genitore" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Deve essere un numero valido" @@ -253,83 +253,127 @@ msgstr "Deve essere un numero valido" msgid "Filename" msgstr "Nome del file" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Tedesco" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Greco" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Inglese" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "Spagnolo (Messicano)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Francese" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "Portoghese" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Cinese" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "Controlli di sistema InvenTree falliti" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "In attesa" @@ -456,7 +500,7 @@ msgstr "Diviso dall'elemento genitore" msgid "Split child item" msgstr "Dividi elemento figlio" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,41 +528,41 @@ msgstr "Ricevuto contro l'ordine di acquisto" msgid "Production" msgstr "Produzione" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "Non è un codice valuta valido" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Carattere non valido nel nome del file" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN deve corrispondere al modello regex {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "Il campo deve corrispondere con il modello {pattern}" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "Carattere illegale nel nome ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "Il sovra-valore non può essere negativo" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "L'eccesso non deve superare il 100%" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" -msgstr "Il superamento deve essere un valore intero o una percentuale" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" #: InvenTree/views.py:538 msgid "Delete Item" @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Quantità" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "Inserisci la quantità per l'output di compilazione" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Codice Seriale" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "Conferma la creazione dell'output di compilazione" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "Conferma la creazione dell'output di compilazione" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "Conferma annullamento" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Riferimento" @@ -689,7 +675,7 @@ msgstr "Riferimento" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Articolo" @@ -741,7 +728,7 @@ msgstr "Numero di riferimento ordine di vendita" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "Posizione Di Origine" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Data di creazione" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Data di completamento" @@ -812,7 +799,7 @@ msgstr "Data di completamento" msgid "completed by" msgstr "Completato da" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "Rilasciato da" @@ -820,12 +807,12 @@ msgstr "Rilasciato da" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "Responsabile" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "Collegamento esterno" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "Note" @@ -864,208 +851,284 @@ msgstr "Note" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "Articolo in giacenza selezionato non trovato nel BOM" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Quantità" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "Installa in" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "Posizione" +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "Inserisci la quantità per l'output di compilazione" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "Posizione per gli output di build completati" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "Stato" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "Distinta base (Bom)" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "L'articolo deve essere disponibile" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Codice Seriale" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Posizione" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "Posizione per gli output di build completati" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Stato" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "Distinta base (Bom)" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "L'articolo deve essere disponibile" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantità disponibile ({q}) superata" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "Deve essere indicata l'allocazione dell'articolo" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "Data scadenza" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "In ritardo" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Completato" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "Ordini di Vendita" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Inviato da" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "Output Incompleti" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "La distinta base contiene articoli tracciabili" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Destinazione" @@ -1234,13 +1277,13 @@ msgstr "Destinazione" msgid "Destination location not specified" msgstr "Posizione di destinazione non specificata" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "Lotto" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "Creato" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Allegati" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "Genera Note" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "Modifica Note" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "Assegnazione Completa" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "Tutte le giacenze non tracciate sono state assegnate" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "Numeri di serie già esistenti" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "Elimina Ordine Build" @@ -1639,9 +1650,9 @@ msgstr "Copia Template Parametri Categoria" msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "Template" @@ -1649,9 +1660,9 @@ msgstr "Template" msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "Assemblaggio" @@ -1659,8 +1670,8 @@ msgstr "Assemblaggio" msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "Componente" @@ -1668,7 +1679,7 @@ msgstr "Componente" msgid "Parts can be used as sub-components by default" msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "Acquistabile" @@ -1676,8 +1687,8 @@ msgstr "Acquistabile" msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "Vendibile" @@ -1685,10 +1696,10 @@ msgstr "Vendibile" msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "Tracciabile" @@ -1696,7 +1707,7 @@ msgstr "Tracciabile" msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "Mostra il prezzo nella BOM" msgid "Include pricing information in BOM tables" msgstr "Includi le informazioni sui prezzi nelle tabelle BOM" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "Mostra articoli correlati" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "Visualizza parti correlate per ogni articolo" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "Crea giacenza iniziale" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "Crea giacenza iniziale sulla creazione articolo" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "Prezzi interni" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "Abilita prezzi interni per gli articoli" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "Prezzo interno come BOM-Price" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Utilizzare il prezzo interno (se impostato) nel calcolo del prezzo BOM" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "Formato di visualizzazione del nome articolo" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "Formato per visualizzare il nome dell'articolo" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "Abilita Report di Stampa" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "Abilita generazione di report di stampa" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "Modalità Debug" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "Genera report in modalità debug (output HTML)" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "Dimensioni pagina" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "Dimensione predefinita della pagina per i report PDF" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "Stampa di prova" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "Abilita generazione di stampe di prova" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "Scadenza giacenza" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "Abilita funzionalità di scadenza della giacenza" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "Vendi giacenza scaduta" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "Consenti la vendita di stock scaduti" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "giorni" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "Controllo della proprietà della giacenza" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "Referenza ordine d'acquisto" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "Email richiesta" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "Prezzo" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "Attivo" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "Carica file" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Abbina Campi" @@ -2328,15 +2345,13 @@ msgstr "Corrispondenza campi non riuscita" msgid "Parts imported" msgstr "Articoli importati" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "Passaggio Precedente" @@ -2404,7 +2419,7 @@ msgstr "Punto di contatto" msgid "Link to external company information" msgstr "Collegamento alle informazioni aziendali esterne" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "Immagine" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Articolo di base" @@ -2453,11 +2468,11 @@ msgstr "Seleziona articolo" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "Produttore" @@ -2488,7 +2503,7 @@ msgstr "Descrizione articolo costruttore" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "Codice articolo produttore" @@ -2499,7 +2514,7 @@ msgstr "Nome parametro" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "Valore" @@ -2507,9 +2522,9 @@ msgstr "Valore" msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "Unità" @@ -2526,11 +2541,11 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "Fornitore" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "Descrizione articolo fornitore" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Nota" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "costo base" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "Confezionamento" @@ -2584,7 +2600,7 @@ msgstr "Confezionamento" msgid "Part packaging" msgstr "Imballaggio del pezzo" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "multiplo" @@ -2645,11 +2661,11 @@ msgstr "Scarica immagine dall'URL" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "Cliente" @@ -2679,7 +2695,7 @@ msgstr "Crea nuovo fornitore" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "Nuovo fornitore articolo" @@ -2687,8 +2703,8 @@ msgstr "Nuovo fornitore articolo" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "Opzioni" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "Giacenza Fornitore" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "Elimina articoli fornitore?" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati" @@ -2824,36 +2840,36 @@ msgstr "Articolo interno" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "Fornitori" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "Elimina articolo fornitore" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "Elimina" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Parametri" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "Nuovo Parametro" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "Elimina il parametro" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "Aggiungi parametro" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "Articolo Fornitore" @@ -2919,7 +2935,7 @@ msgstr "Crea nuova allocazione magazzino" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" @@ -2940,7 +2956,7 @@ msgstr "Informazioni Prezzi" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "Aggiungi riduzione prezzo" @@ -2948,11 +2964,11 @@ msgstr "Aggiungi riduzione prezzo" msgid "No price break information found" msgstr "Nessuna informazione di riduzione di prezzo trovata" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "Elimina riduzione di prezzo" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "Cancella riduzione di prezzo" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "Magazzino" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "Prezzo articolo del fornitore" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "Prezzi" @@ -2996,7 +3012,7 @@ msgstr "Prezzi" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -3026,20 +3042,20 @@ msgstr "Aziende" msgid "New Company" msgstr "Nuova Azienda" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Download Immagine" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "La dimensione dell'immagine supera la dimensione massima consentita per il download" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "Risposta non valida: {code}" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "Articolo Fornitore" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "Stato dell'ordine" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "Elimina colonna" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_wizard/match_fields.html:60 -msgid "Duplicate selection" -msgstr "Duplica selezionati" - -#: order/templates/order/order_wizard/match_fields.html:71 -#: order/templates/order/order_wizard/match_parts.html:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "Elimina riga" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "Errori esistenti nei dati inviati" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "Riga" msgid "Select Supplier Part" msgstr "Seleziona l'articolo del fornitore" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "Elimina riga" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "Specifica la posizione per lo stock iniziale" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Posizione Predefinita" @@ -3968,7 +3944,7 @@ msgstr "Keywords predefinite" msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" @@ -3994,408 +3970,478 @@ msgstr "Articoli" msgid "Invalid choice for parent part" msgstr "Scelta non valida per l'articolo principale" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "I successivi numeri di serie disponibili sono" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "Il prossimo numero di serie disponibile è" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "Il numero di serie più recente è" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "È Template" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "Variante Di" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "Descrizione articolo" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "Parole Chiave" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "Categoria" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "Revisione" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "Scorta Minima" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "Unità di conservazione delle scorte per quest'articolo" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "È una parte virtuale, come un prodotto software o una licenza?" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "Note dell'articolo - supporta la formattazione Markdown" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "BOM checksum" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "Codice Articolo" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "Notifica di magazzino bassa" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "Elimina Elementi" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "Seleziona Articolo" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "Sei iscritto alle notifiche di questa categoria" @@ -4519,7 +4537,7 @@ msgstr "Esporta" msgid "Create new part" msgstr "Crea nuovo articolo" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "Nuovo articolo" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "Assegnazione Ordine Di Vendita" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "Articoli correlati" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "Distinta base" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "Fornitori articoli" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "Componenti Produttori" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "Articoli correlati" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "Elimina colonna" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "Duplica selezionati" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Azioni magazzino" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "Costo Totale" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "Imposta categoria per i seguenti articoli" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "Nessuna giacenza" msgid "Low Stock" msgstr "Disponibilità scarsa" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "Database sconosciuto" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "Imposta categoria articolo" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "Imposta categoria per {n} articoli" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "Esporta Distinta base" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "Modifica Categoria Articoli" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "Elimina categoria" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "La Categoria articoli è stata eliminata" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "Crea Template Parametro Categoria" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "Modifica Modello Parametro Categoria" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "Elimina Modello Parametro Categoria" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "Data" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "Seriale" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "La quantità è richiesta" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "Data di Scadenza" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "Posizione di destinazione per gli elementi disinstallati" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "Conferma la disinstallazione" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "Installato In" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "Numeri di serie già esistenti" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "pagina precedente" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "pagina successiva" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "Ultimo aggiornamento" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "Nessun inventario eseguito" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "Nessuna posizione impostata" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "Modifica Posizione Giacenza" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "Crea una nuova Posizione di Giacenza" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "Elimina Posizione di Giacenza" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "Impostazioni articolo" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "Nessun parametro di categoria trovato" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "Informazioni Versione InvenTree" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "Chiudi" @@ -7090,8 +7143,7 @@ msgstr "" #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." -msgstr "Se non hai ancora creato un account, per favore\n" -"registrati prima." +msgstr "" #: templates/account/login.html:42 msgid "Forgot Password?" @@ -7146,7 +7198,7 @@ msgstr "" #: templates/account/password_reset_from_key.html:11 #, python-format msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "Il link di reset della password non era valido, forse perché è già stato utilizzato. Si prega di richiedere un nuovo reset della password." +msgstr "" #: templates/account/password_reset_from_key.html:18 msgid "Change password" @@ -7163,7 +7215,7 @@ msgstr "Registrati" #: templates/account/signup.html:13 #, python-format msgid "Already have an account? Then please sign in." -msgstr "Hai già un account? Allora accedi." +msgstr "" #: templates/account/signup.html:27 msgid "Or use a SSO-provider for signup" @@ -7276,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "Quantità richiesta" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Disponibile" @@ -7326,11 +7378,11 @@ msgstr "Il server remoto deve essere accessibile" msgid "Remote image must not exceed maximum allowable file size" msgstr "L'immagine remota non deve superare la dimensione massima consentita del file" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7342,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7374,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7447,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7475,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7517,327 +7569,369 @@ msgstr "Controlla Nella Posizione" msgid "Barcode does not match a valid location" msgstr "Il codice a barre non corrisponde a una posizione valida" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "Formato" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "La distinta base contiene articoli tracciabili" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "Posizione non specificata" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "Modifica allocazione magazzino" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "Elimina posizione giacenza" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "Modifica Posizione" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "Rimuovi Posizione" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "Specificare il quantitativo assegnato allo stock" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Seleziona Articoli" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "Conferma l'assegnazione della giacenza" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "Nessuna posizione di magazzino corrispondente" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7967,48 +8061,60 @@ msgstr "Cancella tutti i filtri" msgid "Create filter" msgstr "Crea filtro" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "Azione Vietata" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "Crea operazione non consentita" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "Operazione di aggiornamento non consentita" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "Operazione di eliminazione non consentita" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "Mostra operazione non consentita" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "Inserisci un numero valido" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "Nessun risultato trovato" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "Ricerca" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "Cancella input" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "SÌ" @@ -8018,7 +8124,7 @@ msgid "NO" msgstr "NO" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8073,7 +8179,7 @@ msgid "Cancel" msgstr "Annulla" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "Invia" @@ -8098,31 +8204,31 @@ msgstr "Accetta" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "Risposta dal server non valida" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8142,10 +8248,6 @@ msgstr "ID Posizione" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "Codice Articolo" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8211,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "Quantità da ricevere" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "Stato giacenza" @@ -8345,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "Elimina posizione giacenza" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "Spedito al cliente" @@ -8546,12 +8648,12 @@ msgid "No category" msgstr "Nessuna categoria" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "In esaurimento" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "Visualizza come elenco" @@ -8559,7 +8661,7 @@ msgstr "Visualizza come elenco" msgid "Display as grid" msgstr "Visualizza come griglia" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "Visualizza come struttura ad albero" @@ -8567,7 +8669,7 @@ msgstr "Visualizza come struttura ad albero" msgid "Subscribed category" msgstr "Categoria sottoscritta" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "Percorso" @@ -8575,11 +8677,12 @@ msgstr "Percorso" msgid "No test templates matching query" msgstr "Nessun modello di test corrispondente" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "Modificare il risultato del test" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "Cancellare il risultato del test" @@ -8688,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "Posizione giacenza principale" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "Nuova posizione giacenza" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "Inserisci quantità iniziale per questo articolo in giacenza" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "Crea nuova allocazione magazzino" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "Creato più elementi stock" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "Esporta giacenza" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "Includi sotto allocazioni" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "Includi elementi in giacenza nelle sottoallocazioni" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "Trasferisci giacenza" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "Sposta" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "Conta giacenza" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "Conta" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "Rimuovi giacenza" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "Prendi" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "Aggiungi giacenza" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "Aggiungi" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "Elimina Stock" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "Specificare la quantità di magazzino" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "Devi selezionare almeno un articolo disponibile" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "PASS" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "FAIL" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "NESSUN RISULTATO" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "Aggiungi risultato test" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "Nessun risultato di prova trovato" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "In produzione" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "Installato nell'elemento stock" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "Assegnato all'ordine di vendita" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "Nessuna giacenza impostata" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "L'articolo di magazzino è in produzione" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "Articolo stock assegnato al cliente" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "L'articolo stock è scaduto" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "Articolo in giacenza prossimo alla scadenza" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "L'elemento stock è stato installato in un altro articolo" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "L'articolo stock è stato rifiutato" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "Esaurito" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "Inventario" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "elementi" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "posizione" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "Posizione non definita" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "Data non valida" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "La posizione non esiste più" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "Aggiunto" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "Rimosso" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9056,12 +9187,12 @@ msgstr "Includi posizioni" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "Includi sottocategorie" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "Sottoscritto" @@ -9103,7 +9234,7 @@ msgid "Batch code" msgstr "Codice Lotto" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "Elementi attivi" @@ -9188,47 +9319,47 @@ msgstr "Mostra gli elementi in giacenza scaduti" msgid "Show stock which is close to expiring" msgstr "Mostra giacenza prossima alla scadenza" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "Stato Build" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "Stato dell'ordine" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "In Sospeso" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "Includi articoli nelle sottocategorie" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "Ha IPN" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "L'articolo possiede un part number interno" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "Visualizza articoli attivi" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "Disponibilità" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "Acquistabile" @@ -9481,35 +9612,35 @@ msgstr "Permessi" msgid "Important dates" msgstr "Date Importanti" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "Impostazione autorizzazioni" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "Gruppo" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "Visualizza" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "Autorizzazione a visualizzare gli articoli" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "Autorizzazione ad aggiungere elementi" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "Modificare" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "Permessi per modificare gli elementi" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "Autorizzazione ad eliminare gli elementi" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 463b23c3cf..6c39cc70ff 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -34,9 +34,9 @@ msgstr "一致するアクションが見つかりませんでした" msgid "Enter date" msgstr "日付を入力する" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "確認" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "数量コードが無効です" @@ -119,133 +119,133 @@ msgstr "シリアル番号が見つかりません" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "添付ファイル" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "添付ファイルを選択" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "コメント:" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "ユーザー" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "アップロード日時" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "お名前" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "説明" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "説明 (オプション)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "親" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" @@ -253,83 +253,127 @@ msgstr "有効な数字でなければなりません" msgid "Filename" msgstr "" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "ドイツ語" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "英語" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "フランス語" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree システムのヘルスチェックに失敗しました" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "処理待ち" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -689,7 +675,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "パーツ" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "" @@ -812,7 +799,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "パーツを割り当てるためにビルドする" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "テンプレート" @@ -1649,9 +1660,9 @@ msgstr "テンプレート" msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "アセンブリ" @@ -1659,8 +1670,8 @@ msgstr "アセンブリ" msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "コンポーネント" @@ -1668,7 +1679,7 @@ msgstr "コンポーネント" msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "購入可能" @@ -1676,8 +1687,8 @@ msgstr "購入可能" msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "追跡可能" @@ -1696,7 +1707,7 @@ msgstr "追跡可能" msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "メーカー・パーツ" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "新しいサプライヤー・パーツを作成" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "新しいサプライヤー・パーツ" @@ -2687,8 +2703,8 @@ msgstr "新しいサプライヤー・パーツ" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "メーカー・パーツ" msgid "Create new manufacturer part" msgstr "新しいメーカー・パーツを作成" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "新しいメーカ―・パーツ" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "内部パーツ" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "パーツ" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "新規パーツ" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 0d87fb8280..6a68799a65 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:10\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -34,11 +34,11 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" -msgstr "" +msgstr "확인" #: InvenTree/forms.py:142 msgid "Confirm delete" @@ -58,11 +58,11 @@ msgstr "새로운 비밀번호를 입력하세요" #: InvenTree/forms.py:182 msgid "Confirm password" -msgstr "" +msgstr "비밀번호 확인" #: InvenTree/forms.py:183 msgid "Confirm new password" -msgstr "" +msgstr "새 비밀번호 확인" #: InvenTree/forms.py:215 msgid "Select Category" @@ -70,7 +70,7 @@ msgstr "" #: InvenTree/forms.py:236 msgid "Email (again)" -msgstr "" +msgstr "이메일 (다시 입력)" #: InvenTree/forms.py:240 msgid "Email address confirmation" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "" @@ -119,217 +119,261 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "첨부파일" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "첨부할 파일을 선택하세요" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "링크" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "외부 URL로 링크" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "사용자" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "업로드 날짜" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "파일명은 비워둘 수 없습니다" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "파일명에 허용되지 않은 문자 '{c}'가 포함되어 있습니다" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "같은 이름의 첨부파일이 이미 존재합니다" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "파일 이름 바꾸기 오류" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "이름" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "설명" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "설명 (선택 사항)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" -msgstr "" +msgstr "유효한 숫자여야 합니다" #: InvenTree/serializers.py:299 msgid "Filename" msgstr "파일명" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "독일어" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "그리스어" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "영어" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "스페인어" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "스페인어 (멕시코)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "프랑스어" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "히브리어" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "이탈리아어" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "일본어" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "한국어" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "네덜란드어" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "노르웨이어" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "폴란드어" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "포르투갈어" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "러시아어" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "스웨덴어" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "태국어" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "터키어" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "베트남어" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "중국어" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "" @@ -363,7 +407,7 @@ msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 #: InvenTree/status_codes.py:318 msgid "Cancelled" -msgstr "" +msgstr "취소됨" #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:187 @@ -390,11 +434,11 @@ msgstr "" #: InvenTree/status_codes.py:185 msgid "Damaged" -msgstr "" +msgstr "파손됨" #: InvenTree/status_codes.py:186 msgid "Destroyed" -msgstr "" +msgstr "파괴됨" #: InvenTree/status_codes.py:188 msgid "Rejected" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -530,7 +574,7 @@ msgstr "" #: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" -msgstr "" +msgstr "사용자 정보 수정" #: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "수량" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -689,7 +675,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "" @@ -812,7 +799,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "외부 링크" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "수량" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "위치" - -#: build/serializers.py:191 -msgid "Location for completed build outputs" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "상태" +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "수량 값은 0보다 커야 합니다" -#: build/serializers.py:213 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "일련번호" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:249 +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "위치" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "상태" + +#: build/serializers.py:428 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:250 +#: build/serializers.py:429 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:260 templates/js/translated/build.js:149 +#: build/serializers.py:439 templates/js/translated/build.js:150 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:265 +#: build/serializers.py:444 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:266 +#: build/serializers.py:445 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:276 templates/js/translated/build.js:153 +#: build/serializers.py:455 templates/js/translated/build.js:154 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:464 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 msgid "BOM Item" msgstr "" -#: build/serializers.py:323 +#: build/serializers.py:505 msgid "Build output" msgstr "" -#: build/serializers.py:332 +#: build/serializers.py:514 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:561 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:394 stock/serializers.py:585 +#: build/serializers.py:576 stock/serializers.py:642 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 -#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 -msgid "Quantity must be greater than zero" -msgstr "" - -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1484,12 +1495,12 @@ msgstr "업로드할 파일을 선택하세요" #: common/forms.py:50 msgid "{name.title()} File" -msgstr "" +msgstr "{name.title()} 파일" #: common/forms.py:51 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "업로드할 {name} 파일을 선택하세요" #: common/models.py:352 msgid "Settings key (must be unique - case insensitive)" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "구입 가능" @@ -1676,8 +1687,8 @@ msgstr "구입 가능" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "판매 가능" @@ -1685,10 +1696,10 @@ msgstr "판매 가능" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "디버그 모드" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "페이지 크기" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "PDF 보고서 기본 페이지 크기" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "SSO 활성화" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" -msgstr "" +msgstr "로그인 페이지에서 SSO 활성화" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "이메일 필요" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" -msgstr "" +msgstr "두 번 보내기" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "파일 업로드" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "이미지" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "URL에서 이미지 다운로드" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "고객" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "삭제" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "새 회사" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "이미지 다운로드" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3073,7 +3089,7 @@ msgstr "" #: label/models.py:140 msgid "Width [mm]" -msgstr "" +msgstr "너비 [mm]" #: label/models.py:141 msgid "Label width, specified in mm" @@ -3081,7 +3097,7 @@ msgstr "" #: label/models.py:147 msgid "Height [mm]" -msgstr "" +msgstr "높이 [mm]" #: label/models.py:148 msgid "Label height, specified in mm" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3422,7 +3438,7 @@ msgstr "" #: order/serializers.py:251 msgid "Barcode Hash" -msgstr "" +msgstr "바코드 해시" #: order/serializers.py:252 msgid "Unique identifier field" @@ -3430,7 +3446,7 @@ msgstr "" #: order/serializers.py:269 msgid "Barcode is already in use" -msgstr "" +msgstr "이미 사용 중인 바코드입니다" #: order/serializers.py:307 msgid "Line items must be provided" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" -msgstr "" +msgstr "데이터" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" -msgstr "" +msgstr "부품 명세서" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4806,7 +4854,7 @@ msgstr "" #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" -msgstr "" +msgstr "QR 코드 보기" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:55 @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,9 +4978,9 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" -msgstr "" +msgstr "일련번호 검색" #: part/templates/part/part_base.html:449 part/templates/part/prices.html:144 msgid "Calculate" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "부품 명세서 업로드" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5273,7 +5350,7 @@ msgstr "" #: plugin/models.py:32 msgid "Key" -msgstr "" +msgstr "키" #: plugin/models.py:33 msgid "Key of plugin" @@ -5301,7 +5378,7 @@ msgstr "" #: plugin/samples/integration/sample.py:48 msgid "API Key" -msgstr "" +msgstr "API 키" #: plugin/samples/integration/sample.py:49 msgid "Key required for accessing external API" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "일련번호" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" -msgstr "" +msgstr "일련번호" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "일련번호가 이미 존재합니다" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6521,21 +6573,21 @@ msgstr "" #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" -msgstr "" +msgstr "새 탭에서 열기" #: templates/InvenTree/settings/part.html:7 msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6559,12 +6611,12 @@ msgstr "" #: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 #: users/models.py:39 msgid "Admin" -msgstr "" +msgstr "관리자" #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" -msgstr "" +msgstr "작성자" #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:43 @@ -6663,57 +6715,57 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "사용자 설정" #: templates/InvenTree/settings/sidebar.html:9 #: templates/InvenTree/settings/user.html:12 msgid "Account Settings" -msgstr "" +msgstr "계정 설정" #: templates/InvenTree/settings/sidebar.html:11 #: templates/InvenTree/settings/user_display.html:9 @@ -6722,7 +6774,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:13 msgid "Home Page" -msgstr "" +msgstr "홈페이지" #: templates/InvenTree/settings/sidebar.html:15 #: templates/InvenTree/settings/user_search.html:9 @@ -6817,7 +6869,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:95 #: templates/InvenTree/settings/user.html:201 msgid "Warning:" -msgstr "" +msgstr "경고:" #: templates/InvenTree/settings/user.html:96 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." @@ -6825,11 +6877,11 @@ msgstr "" #: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" -msgstr "" +msgstr "이메일 주소 추가" #: templates/InvenTree/settings/user.html:109 msgid "Add Email" -msgstr "" +msgstr "이메일 추가" #: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" @@ -6909,7 +6961,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:243 msgid "Last Activity" -msgstr "" +msgstr "마지막 활동" #: templates/InvenTree/settings/user.html:252 #, python-format @@ -6993,23 +7045,24 @@ msgstr "" #: templates/about.html:10 msgid "InvenTree Version Information" -msgstr "" +msgstr "InvenTree 버전 정보" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" #: templates/about.html:20 msgid "InvenTree Version" -msgstr "" +msgstr "InvenTree 버전" #: templates/about.html:25 msgid "Development Version" -msgstr "" +msgstr "개발 버전" #: templates/about.html:28 msgid "Up to Date" @@ -7021,7 +7074,7 @@ msgstr "" #: templates/about.html:53 msgid "InvenTree Documentation" -msgstr "" +msgstr "InvenTree 문서" #: templates/about.html:58 msgid "API Version" @@ -7029,15 +7082,15 @@ msgstr "API 버전" #: templates/about.html:63 msgid "Python Version" -msgstr "" +msgstr "Python 버전" #: templates/about.html:68 msgid "Django Version" -msgstr "" +msgstr "Django 버전" #: templates/about.html:73 msgid "View Code on GitHub" -msgstr "" +msgstr "GitHub에서 코드 보기" #: templates/about.html:78 msgid "Credits" @@ -7045,7 +7098,7 @@ msgstr "" #: templates/about.html:83 msgid "Mobile App" -msgstr "" +msgstr "모바일 앱" #: templates/about.html:88 msgid "Submit Bug Report" @@ -7057,7 +7110,7 @@ msgstr "" #: templates/about.html:95 msgid "copy version information" -msgstr "" +msgstr "버전 정보 복사" #: templates/account/email_confirm.html:6 #: templates/account/email_confirm.html:10 @@ -7077,7 +7130,7 @@ msgstr "" #: templates/account/login.html:6 templates/account/login.html:16 #: templates/account/login.html:39 msgid "Sign In" -msgstr "" +msgstr "로그인" #: templates/account/login.html:21 #, python-format @@ -7111,15 +7164,15 @@ msgstr "" #: templates/account/logout.html:5 templates/account/logout.html:8 #: templates/account/logout.html:20 msgid "Sign Out" -msgstr "" +msgstr "로그아웃" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "" +msgstr "정말 로그아웃하시겠습니까?" #: templates/account/logout.html:19 msgid "Back to Site" -msgstr "" +msgstr "사이트로 돌아가기" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 @@ -7162,7 +7215,7 @@ msgstr "" #: templates/account/signup.html:13 #, python-format msgid "Already have an account? Then please sign in." -msgstr "이미 계정을 가지고 계십니까? 그렇다면 로그인 하세요." +msgstr "" #: templates/account/signup.html:27 msgid "Or use a SSO-provider for signup" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7294,7 +7347,7 @@ msgstr "" #: templates/email/email.html:35 msgid "InvenTree version" -msgstr "" +msgstr "InvenTree 버전" #: templates/email/low_stock_notification.html:7 #, python-format @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" -msgstr "" +msgstr "오류 408: 시간 초과" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7427,7 +7480,7 @@ msgstr "" #: templates/js/translated/barcode.js:35 msgid "Barcode" -msgstr "" +msgstr "바코드" #: templates/js/translated/barcode.js:53 msgid "Enter optional notes for stock transfer" @@ -7439,14 +7492,14 @@ msgstr "" #: templates/js/translated/barcode.js:92 msgid "Server error" -msgstr "" +msgstr "서버 오류" #: templates/js/translated/barcode.js:113 msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" -msgstr "" +msgstr "선택" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "예" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "아니오" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "취소" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "제출" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8506,7 +8609,7 @@ msgstr "" #: templates/js/translated/part.js:481 msgid "Copy Bill of Materials" -msgstr "" +msgstr "부품 명세서 복사" #: templates/js/translated/part.js:509 templates/js/translated/part.js:594 msgid "Trackable part" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "일련번호 찾기" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "일련번호를 입력하세요" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" -msgstr "" +msgstr "일련번호를 입력하세요" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" -msgstr "" +msgstr "일치하는 일련번호가 없습니다" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9094,7 +9226,7 @@ msgstr "" #: templates/js/translated/table_filters.js:221 #: templates/js/translated/table_filters.js:222 msgid "Serial number" -msgstr "" +msgstr "일련번호" #: templates/js/translated/table_filters.js:152 #: templates/js/translated/table_filters.js:239 @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index 73f5ea6755..64190d6ca7 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -34,9 +34,9 @@ msgstr "Geen overeenkomende actie gevonden" msgid "Enter date" msgstr "Voer datum in" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Bevestigen" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Dubbel serienummer: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveeldheid ingevoerd" @@ -119,133 +119,133 @@ msgstr "Geen serienummers gevonden" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Aantal unieke serienummer ({s}) moet overeenkomen met de hoeveelheid ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "Ontbrekend bestand" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "Externe link ontbreekt" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Bijlage" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Link" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Link naar externe URL" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Opmerking" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Bijlage opmerking" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Gebruiker" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "uploaddatum" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Bestandsnaam mag niet leeg zijn" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Fout bijlagemap" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Bestandsnaam bevat illegale teken '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Bestandsnaam mist extensie" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Bijlage met deze bestandsnaam bestaat al" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Fout bij hernoemen bestand" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Naam" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "overkoepelend" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" @@ -253,83 +253,127 @@ msgstr "Moet een geldig nummer zijn" msgid "Filename" msgstr "Bestandsnaam" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Duits" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Grieks" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Engels" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Spaans" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "Spaans (Mexicaans)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Frans" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "Portugees" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Chinees" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "Inventree gezondsheidscheck faalt" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "Bezig" @@ -456,7 +500,7 @@ msgstr "Splits van bovenliggend item" msgid "Split child item" msgstr "Splits onderliggende item" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "Ontvangen tegen inkoopopdracht" msgid "Production" msgstr "Productie" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "Foute valutacode" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Foute letter in onderdeelnaam" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN moet overeenkomen met regex-patroon {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "Refernetie moet overeenkomen met patroon {pattern}" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "Illegale letter in naam ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "Overschrijdingswaarde mag niet negatief zijn" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Aantal" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "Voer hoeveelheid in voor build-output" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Serienummers" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "Voer serienummers in voor build-outputs" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "Bevestig het maken van build-output" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "Bevestig verwijdering van build-output" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "Annuleren bevestigen" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "Bevestig annulering van de build" @@ -657,7 +643,7 @@ msgstr "Ongeldige keuze voor bovenliggende build" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "Productie-opdracht" @@ -665,7 +651,7 @@ msgstr "Productie-opdracht" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "Productie-opdracht referentie" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referentie" @@ -689,7 +675,7 @@ msgstr "Referentie" msgid "Brief description of the build" msgstr "Korte beschrijving van de build" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "Bovenliggende bouw" @@ -702,30 +688,31 @@ msgstr "Productie-opdracht waar dit product aan is toegewezen" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Onderdeel" @@ -741,7 +728,7 @@ msgstr "Verkooporder referentie" msgid "SalesOrder to which this build is allocated" msgstr "Verkooporder waar dit product aan is toegewezen" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "Bron Locatie" @@ -782,15 +769,15 @@ msgstr "Bouwstatus" msgid "Build status code" msgstr "Bouwstatuscode" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Aanmaakdatum" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Opleveringsdatum" @@ -812,7 +799,7 @@ msgstr "Opleveringsdatum" msgid "completed by" msgstr "voltooid door" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "Gebruiker die de productie-opdracht heeft gegeven" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "Verantwoordelijke" @@ -837,26 +824,26 @@ msgstr "Gebruiker verantwoordelijk voor deze productie-opdracht" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "Externe Link" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "Opmerkingen" @@ -864,208 +851,284 @@ msgstr "Opmerkingen" msgid "Extra build notes" msgstr "Opmerkingen over de bouw" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "Geen bouwuitvoer opgegeven" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "Bouwuitvoer is al voltooid" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "Product komt niet overeen met de productie-opdracht" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "Product" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "Bouw om onderdelen toe te wijzen" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Aantal" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid te alloceren aan bouw" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "Locatie" +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "Voer hoeveelheid in voor build-output" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "Status" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Serienummers" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "Voer serienummers in voor build-outputs" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Locatie" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Status" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "Bewerk Build" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "Annuleer Build" @@ -1105,110 +1168,90 @@ msgstr "Voltooi Build" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Deze productie-opdracht is toegewezen aan verkooporder %(link)s" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Deze productie-opdracht is een onderdeel van productie-opdracht %(link)s" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "Productie-opdracht is gereed om te markeren als voltooid" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Productie-opdracht kan niet worden voltooid omdat er nog producties openstaan" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "Vereiste bouwhoeveelheid is nog niet bereikt" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "Voorraad is niet volledig toegewezen aan deze productie-opdracht" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "Streefdatum" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "Deze bouw was verwacht op %(target)s" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "Achterstallig" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Voltooid" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "Verkooporder" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Uitgegeven door" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "Onvolledige bouwuitvoer" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "Productie-opdracht kan niet worden voltooid omdat er onvoltooide producten openstaan" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "De stuklijst bevat traceerbare onderdelen" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "Traceerbare onderdelen kunnen een serienummer hebben" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "Voer serienummers in om meerdere bouw-outputs te genereren" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "Weet je zeker dat je de bouw wilt annuleren?" @@ -1225,7 +1268,7 @@ msgstr "Voorraadbron" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Bestemming" @@ -1234,13 +1277,13 @@ msgstr "Bestemming" msgid "Destination location not specified" msgstr "Bestemmingslocatie niet opgegeven" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "Toegewezen onderdelen" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "Batch" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "Gecreëerd" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "Voorraad toewijzen aan Product" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "Niet toegewezen voorraad" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Bijlagen" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "Bouw notities" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "Notities Bewerken" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "Samenstelling" @@ -1659,8 +1670,8 @@ msgstr "Samenstelling" msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere delen worden samengesteld" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "Interne prijzen" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "Foutopsporingsmodus" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "Paginagrootte" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "Testrapport" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "Verlopen voorraad" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "Verkoop verlopen voorraad" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "Verkoop verlopen voorraad toestaan" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "dagen" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "Fabrikant" @@ -2488,7 +2503,7 @@ msgstr "Omschrijving onderdeel fabrikant" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "Fabrikant onderdelen" msgid "Create new manufacturer part" msgstr "Maak nieuw fabrikant onderdeel" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "Nieuw fabrikant onderdeel" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Standaard locatie" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "Toewijzingen verkoopopdracht" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "Nieuw stuklijstitem" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "Samenstellingen" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "Productie-opdracht toewijzingen" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "Fabrikanten" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "Fabrikant onderdeel verwijderen" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Voorraad acties" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "Serienummer" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "Geen Locatie ingesteld" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "Geen fabrikant geselecteerd" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "Bewerk voorraadlocatie" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "Maak nieuwe voorraadlocatie" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "Verwijder voorraadlocatie" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Beschikbaar" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "Voeg fabrikantgegevens toe" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "Voeg fabrikantgegevens toe aan geëxporteerde BOM" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "Productie-opdracht is onvolledig" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "De stuklijst bevat traceerbare onderdelen" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "Traceerbare onderdelen kunnen een serienummer hebben" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "Voer serienummers in om meerdere bouw-outputs te genereren" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "Locatie is niet opgegeven" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "Voorraadtoewijzing bewerken" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "Voorraadtoewijzing verwijderen" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "Toegewezen" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "Voorraad toewijzen" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Onderdelen selecteren" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "Er moet op zijn minst één onderdeel toegewezen worden" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruiken)" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "Bevestig de voorraadtoewijzing" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "Geen voorraadlocatie ingesteld" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 9af733aa18..590cd9fe2c 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -34,9 +34,9 @@ msgstr "Ingen samsvarende handling funnet" msgid "Enter date" msgstr "Oppgi dato" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Bekreft" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Dupliser serie: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" @@ -119,133 +119,133 @@ msgstr "Ingen serienummer funnet" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Antall unike serienummer ({s}) må samsvare mengde ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "Fil mangler" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "Mangler eksternlenke" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Vedlegg" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Lenke" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Lenke til ekstern URL" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Kommenter" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Kommentar til fil" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Bruker" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "opplastet dato" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Filnavn må ikke være tom" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Ugyldig vedleggskatalog" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Filnavn inneholder ugyldig tegn '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Filnavn mangler filtype" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Vedlegg med dette filnavnet finnes allerede" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Feil ved endring av navn" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "overkategori" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Nummer må være gyldig" @@ -253,83 +253,127 @@ msgstr "Nummer må være gyldig" msgid "Filename" msgstr "Filnavn" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Gresk" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "Spansk (Meksikansk)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "Portugesisk" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Kinesisk" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "Helsekontroll av IvenTree system mislyktes" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "Ventende" @@ -456,7 +500,7 @@ msgstr "Delt fra overordnet element" msgid "Split child item" msgstr "Delt fra underelement" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "Sammenslått lagervare" @@ -484,41 +528,41 @@ msgstr "Mottatt mot innkjøpsordre" msgid "Production" msgstr "Produksjon" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "Ikke en gyldig valutanr" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Ugylding tegn i varenavn" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN må matche regex-mønster {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "Referansen må samsvare med mønster {pattern}" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "Ugyldig tegn i navn ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "Overde-verdien må ikke være negativ" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "Overde må ikke overstige 100%" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" -msgstr "Overde må være en heltallsverdi eller en prosentandel" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" #: InvenTree/views.py:538 msgid "Delete Item" @@ -578,193 +622,136 @@ msgstr "Strekkode samsvarer allerede med delen" #: barcodes/api.py:207 barcodes/api.py:219 msgid "Barcode hash already matches Stock Item" -msgstr "" +msgstr "Strekkkoden hash samsvarer allerede med lagervare" #: barcodes/api.py:225 msgid "Barcode associated with Stock Item" msgstr "Strekkode tilknyttet lagervare" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Antall" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "Angi antall for build utgang" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Serienummer" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" -msgstr "" +msgstr "Bekreft avbestilling" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" -msgstr "" +msgstr "Bekfret build avbestilling" #: build/models.py:135 msgid "Invalid choice for parent build" -msgstr "" +msgstr "Ugylding valg for overordnet build" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" -msgstr "" +msgstr "Build ordre" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" -msgstr "" +msgstr "Build Ordre" #: build/models.py:200 msgid "Build Order Reference" -msgstr "" +msgstr "Bygg ordrereferanse" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" -msgstr "" +msgstr "Referanse" #: build/models.py:212 msgid "Brief description of the build" -msgstr "" +msgstr "Kort beskrivelse av build" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" -msgstr "" +msgstr "Overordnet build" #: build/models.py:222 msgid "BuildOrder to which this build is allocated" -msgstr "" +msgstr "Build order som denne build er tildelt til" #: build/models.py:227 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" -msgstr "" +msgstr "Del" #: build/models.py:235 msgid "Select part to build" -msgstr "" +msgstr "Valg del å bygge" #: build/models.py:240 msgid "Sales Order Reference" -msgstr "" +msgstr "Salg order referanse" #: build/models.py:244 msgid "SalesOrder to which this build is allocated" -msgstr "" +msgstr "Salgorder som denne build er tildelt til" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" -msgstr "" +msgstr "Kilde plassering" #: build/models.py:253 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" -msgstr "" +msgstr "Valg sted for å ta lagervare fra for dette prosjektet (la stå tomt for a ta fra hvilken som helst sted)" #: build/models.py:258 msgid "Destination Location" -msgstr "" +msgstr "Sted for destinasjon" #: build/models.py:262 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "Velg sted hvor fulførte elementer vil bli lagret" #: build/models.py:266 msgid "Build Quantity" -msgstr "" +msgstr "Prosjekt mengde" #: build/models.py:269 msgid "Number of stock items to build" -msgstr "" +msgstr "Antall lagervare til prosjektet" #: build/models.py:273 msgid "Completed items" @@ -782,15 +769,15 @@ msgstr "Byggstatus" msgid "Build status code" msgstr "Byggstatuskode" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "Batch kode" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "Batch kode for denne build output" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Opprettelsesdato" @@ -804,268 +791,344 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Fullført dato" #: build/models.py:308 msgid "completed by" -msgstr "" +msgstr "fullført av" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" -msgstr "" +msgstr "Utstedt av" #: build/models.py:317 msgid "User who issued this build order" -msgstr "" +msgstr "Brukeren som utstede denne prosjekt order" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" -msgstr "" +msgstr "Ansvarlig" #: build/models.py:326 msgid "User responsible for this build order" -msgstr "" +msgstr "Bruker ansvarlig for denne prosjekt order" #: build/models.py:331 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" -msgstr "" +msgstr "Ekstern link" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" -msgstr "" +msgstr "Notater" #: build/models.py:337 msgid "Extra build notes" -msgstr "" +msgstr "Ekstra prosjekt notater" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" -msgstr "" +msgstr "Ingen prosjekt utgang" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" -msgstr "" +msgstr "Prosjekt utdata er allerede utfylt" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" -msgstr "" +msgstr "Prosjekt utdata samsvarer ikke Prosjekt Order" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" +msgstr "Prosjektvare må spesifisere en prosjekt utdata, siden hovedvaren er markert som sporbar" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" -msgstr "" +msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelige lager mengde ({a})" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" -msgstr "" +msgstr "Lagervare er overtildelt" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" -msgstr "" +msgstr "Tildeling antallet må være større enn null" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" -msgstr "" +msgstr "Mengden må væew 1 for serialisert lagervare" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" -msgstr "" +msgstr "Valgt lagevare ikke funnet i BOM" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" -msgstr "" +msgstr "Prosjekt" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" -msgstr "" +msgstr "Bygge for å tildele deler" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" -msgstr "" +msgstr "Lagervare" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" -msgstr "" +msgstr "Kilde lagervare" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Antall" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" -msgstr "" +msgstr "Installerings informasjon" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" -msgstr "" +msgstr "Målets lagervare" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "Angi antall for build utgang" + +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "Mengden må være større enn null" + +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Serienummer" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "Angi serienummer for bygge-utganger" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:213 +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:249 +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Beliggenhet" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Status" + +#: build/serializers.py:428 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:250 +#: build/serializers.py:429 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:260 templates/js/translated/build.js:149 +#: build/serializers.py:439 templates/js/translated/build.js:150 msgid "Required stock has not been fully allocated" -msgstr "" +msgstr "Påkrevd varer er ikke fullt tildelt" -#: build/serializers.py:265 +#: build/serializers.py:444 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:266 +#: build/serializers.py:445 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:276 templates/js/translated/build.js:153 +#: build/serializers.py:455 templates/js/translated/build.js:154 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:464 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:323 +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "BOM varer" + +#: build/serializers.py:505 msgid "Build output" msgstr "" -#: build/serializers.py:332 +#: build/serializers.py:514 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:561 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:394 stock/serializers.py:585 +#: build/serializers.py:576 stock/serializers.py:642 msgid "Item must be in stock" -msgstr "" +msgstr "Varen må være på lager" -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 -#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 -msgid "Quantity must be greater than zero" -msgstr "" - -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" -msgstr "" +msgstr "Tilgjengelig mengde ({q}) overskredet" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,113 +1168,93 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" -msgstr "" +msgstr "Måldato" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" -msgstr "" +msgstr "Fullført" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" -msgstr "" +msgstr "Salgsorder" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" -msgstr "" +msgstr "Utstedt av" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "Er du sikker du vil kansellere?" #: build/templates/build/detail.html:16 msgid "Build Details" @@ -1219,28 +1262,28 @@ msgstr "" #: build/templates/build/detail.html:39 msgid "Stock Source" -msgstr "" +msgstr "Lager kilde" #: build/templates/build/detail.html:44 msgid "Stock can be taken from any available location." -msgstr "" +msgstr "Lagervare kan hentes fra alle tilgengelige steder." -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" -msgstr "" +msgstr "Destinasjon" #: build/templates/build/detail.html:57 msgid "Destination location not specified" -msgstr "" +msgstr "Målplassering er ikke spesifisert" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" -msgstr "" +msgstr "Tildelte deler" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,13 +1292,13 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" -msgstr "" +msgstr "Opprettet" #: build/templates/build/detail.html:138 msgid "No target date set" -msgstr "" +msgstr "Ingen måldato satt" #: build/templates/build/detail.html:147 msgid "Build not complete" @@ -1269,13 +1312,13 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" -msgstr "" +msgstr "Fjern lager allokering" #: build/templates/build/detail.html:178 msgid "Unallocate Stock" -msgstr "" +msgstr "Fjern lager allokering" #: build/templates/build/detail.html:180 msgid "Allocate stock to build" @@ -1283,18 +1326,18 @@ msgstr "" #: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8 msgid "Allocate Stock" -msgstr "" +msgstr "Tildele lager" #: build/templates/build/detail.html:184 msgid "Order required parts" -msgstr "" +msgstr "Bestill nødvendige deler" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 #: part/templates/part/category.html:177 msgid "Order Parts" -msgstr "" +msgstr "Bestill deler" #: build/templates/build/detail.html:197 msgid "Untracked stock has been fully allocated for this Build Order" @@ -1306,7 +1349,7 @@ msgstr "" #: build/templates/build/detail.html:208 msgid "Allocate selected items" -msgstr "" +msgstr "Tildel valgte varer" #: build/templates/build/detail.html:218 msgid "This Build Order does not have any associated untracked BOM items" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" -msgstr "" +msgstr "Vedlegg" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" -msgstr "" +msgstr "Rediger notater" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" -msgstr "" +msgstr "Tildeling fullført" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" -msgstr "" +msgstr "Alle usporbar lagervarer har tildelt" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1386,13 +1437,13 @@ msgstr "" #: order/templates/order/purchase_orders.html:34 #: order/templates/order/sales_orders.html:37 msgid "Display calendar view" -msgstr "" +msgstr "Vis kalender" #: build/templates/build/index.html:47 #: order/templates/order/purchase_orders.html:37 #: order/templates/order/sales_orders.html:40 msgid "Display list view" -msgstr "" +msgstr "Vis liste" #: build/templates/build/sidebar.html:5 msgid "Build Order Details" @@ -1400,87 +1451,47 @@ msgstr "" #: build/templates/build/sidebar.html:12 msgid "Pending Items" -msgstr "" +msgstr "Ventende elementer" #: build/templates/build/sidebar.html:15 msgid "Completed Items" -msgstr "" +msgstr "Fullført elementer" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" #: common/files.py:65 msgid "Unsupported file format: {ext.upper()}" -msgstr "" +msgstr "Filformatet støttes ikke: {ext.upper()}" #: common/files.py:67 msgid "Error reading file (invalid encoding)" -msgstr "" +msgstr "Feil under lesing av fil (ugyldig koding)" #: common/files.py:72 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "Feil under lesing av fil (ugyldig format)" #: common/files.py:74 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "Feil under lesing av fil (feil dimensjon)" #: common/files.py:76 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "Feil under lesing av fil (data kan være skadet)" #: common/forms.py:34 msgid "File" -msgstr "" +msgstr "Fil" #: common/forms.py:35 msgid "Select file to upload" -msgstr "" +msgstr "Velg fil å laste opp" #: common/forms.py:50 msgid "{name.title()} File" @@ -1489,11 +1500,11 @@ msgstr "" #: common/forms.py:51 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "Velg {name} fil som skal lastes opp" #: common/models.py:352 msgid "Settings key (must be unique - case insensitive)" -msgstr "" +msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)" #: common/models.py:354 msgid "Settings value" @@ -1501,11 +1512,11 @@ msgstr "" #: common/models.py:388 msgid "Chosen value is not a valid option" -msgstr "" +msgstr "Valgt verdi er ikke et gyldig alternativ" #: common/models.py:408 msgid "Value must be a boolean value" -msgstr "" +msgstr "Verdien må være en boolsk verdi" #: common/models.py:419 msgid "Value must be an integer value" @@ -1517,15 +1528,15 @@ msgstr "" #: common/models.py:561 msgid "No group" -msgstr "" +msgstr "Ingen gruppe" #: common/models.py:603 msgid "Restart required" -msgstr "" +msgstr "Omstart påkrevd" #: common/models.py:604 msgid "A setting has been changed which requires a server restart" -msgstr "" +msgstr "En innstilling har blitt endrett som krever en serveromstart" #: common/models.py:611 msgid "InvenTree Instance Name" @@ -1545,11 +1556,11 @@ msgstr "" #: common/models.py:624 company/models.py:100 company/models.py:101 msgid "Company name" -msgstr "" +msgstr "Firmanavn" #: common/models.py:625 msgid "Internal company name" -msgstr "" +msgstr "Internt firmanavn" #: common/models.py:630 msgid "Base URL" @@ -1561,27 +1572,27 @@ msgstr "" #: common/models.py:637 msgid "Default Currency" -msgstr "" +msgstr "Standardvaluta" #: common/models.py:638 msgid "Default currency" -msgstr "" +msgstr "Standardvaluta" #: common/models.py:644 msgid "Download from URL" -msgstr "" +msgstr "Last ned fra URL" #: common/models.py:645 msgid "Allow download of remote images and files from external URL" -msgstr "" +msgstr "Tilat nedlastning av eksterne bilder og filer fra ekstern URL" #: common/models.py:651 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" -msgstr "" +msgstr "Strekkode støtte" #: common/models.py:652 msgid "Enable barcode scanner support" -msgstr "" +msgstr "Aktiver skrekkodeleser støtte" #: common/models.py:658 msgid "IPN Regex" @@ -1593,19 +1604,19 @@ msgstr "" #: common/models.py:663 msgid "Allow Duplicate IPN" -msgstr "" +msgstr "Tilat duplisert IPN" #: common/models.py:664 msgid "Allow multiple parts to share the same IPN" -msgstr "" +msgstr "Tillat flere deler å dele samme IPN" #: common/models.py:670 msgid "Allow Editing IPN" -msgstr "" +msgstr "Tillat redigering av IPN" #: common/models.py:671 msgid "Allow changing the IPN value while editing a part" -msgstr "" +msgstr "Tillat å endre IPN-verdien mens du redigerer en del" #: common/models.py:677 msgid "Copy Part BOM Data" @@ -1629,7 +1640,7 @@ msgstr "" #: common/models.py:692 msgid "Copy test data by default when duplicating a part" -msgstr "" +msgstr "Kopier testdata som standard ved duplisering av en del" #: common/models.py:698 msgid "Copy Category Parameter Templates" @@ -1637,90 +1648,90 @@ msgstr "" #: common/models.py:699 msgid "Copy category parameter templates when creating a part" -msgstr "" +msgstr "Kopier kategori parametermaler ved oppretting av en del" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" -msgstr "" +msgstr "Mal" #: common/models.py:706 msgid "Parts are templates by default" -msgstr "" +msgstr "Deler er maler som standard" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" -msgstr "" +msgstr "Montering" #: common/models.py:713 msgid "Parts can be assembled from other components by default" -msgstr "" +msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" -msgstr "" +msgstr "Komponent" #: common/models.py:720 msgid "Parts can be used as sub-components by default" -msgstr "" +msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" -msgstr "" +msgstr "Kjøpbar" #: common/models.py:727 msgid "Parts are purchaseable by default" -msgstr "" +msgstr "Deler er kjøpbare som standard" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" -msgstr "" +msgstr "Salgbar" #: common/models.py:734 msgid "Parts are salable by default" -msgstr "" +msgstr "Deler er salgbare som standard" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" -msgstr "" +msgstr "Sporbar" #: common/models.py:741 msgid "Parts are trackable by default" -msgstr "" +msgstr "Deler er sporbare som standard" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" -msgstr "" +msgstr "Virtuelle" #: common/models.py:748 msgid "Parts are virtual by default" -msgstr "" +msgstr "Deler er virtuelle som standard" #: common/models.py:754 msgid "Show Import in Views" -msgstr "" +msgstr "Vis import i visninger" #: common/models.py:755 msgid "Display the import wizard in some part views" -msgstr "" +msgstr "Vis importveiviseren i noen deler visninger" #: common/models.py:761 msgid "Show Price in Forms" -msgstr "" +msgstr "Vis pris i skjemaer" #: common/models.py:762 msgid "Display part price in some forms" -msgstr "" +msgstr "Vis delpris i noen skjemaer" #: common/models.py:773 msgid "Show Price in BOM" @@ -1730,595 +1741,601 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:896 -msgid "Prefix value for sales order reference" -msgstr "" - -#: common/models.py:901 -msgid "Purchase Order Reference Prefix" -msgstr "" - -#: common/models.py:902 -msgid "Prefix value for purchase order reference" -msgstr "" +msgstr "Salgsorder referanse prefiks" #: common/models.py:908 -msgid "Enable password forgot" -msgstr "" +msgid "Prefix value for sales order reference" +msgstr "Prefiks verdi for salgsorder referanse" -#: common/models.py:909 -msgid "Enable password forgot function on the login pages" -msgstr "" +#: common/models.py:913 +msgid "Purchase Order Reference Prefix" +msgstr "Salgsorder referanse prefiks" #: common/models.py:914 -msgid "Enable registration" -msgstr "" - -#: common/models.py:915 -msgid "Enable self-registration for users on the login pages" -msgstr "" +msgid "Prefix value for purchase order reference" +msgstr "Prefiks verdi for salgsorder referanse" #: common/models.py:920 -msgid "Enable SSO" -msgstr "" +msgid "Enable password forgot" +msgstr "Aktiver passord glemt" #: common/models.py:921 -msgid "Enable SSO on the login pages" -msgstr "" +msgid "Enable password forgot function on the login pages" +msgstr "Ativer funskjon for glemt passord på innloggingssidene" #: common/models.py:926 -msgid "Email required" -msgstr "" +msgid "Enable registration" +msgstr "Aktiver registrering" #: common/models.py:927 -msgid "Require user to supply mail on signup" -msgstr "" +msgid "Enable self-registration for users on the login pages" +msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" #: common/models.py:932 -msgid "Auto-fill SSO users" -msgstr "" +msgid "Enable SSO" +msgstr "Aktiver SSO" #: common/models.py:933 -msgid "Automatically fill out user-details from SSO account-data" -msgstr "" +msgid "Enable SSO on the login pages" +msgstr "Aktiver SSO på innloggingssidene" #: common/models.py:938 -msgid "Mail twice" -msgstr "" +msgid "Email required" +msgstr "E-postadresse kreves" #: common/models.py:939 -msgid "On signup ask users twice for their mail" -msgstr "" +msgid "Require user to supply mail on signup" +msgstr "Krevt at brukeren angi e-post ved registrering" #: common/models.py:944 -msgid "Password twice" -msgstr "" +msgid "Auto-fill SSO users" +msgstr "Auto-utfyll SSO brukere" #: common/models.py:945 -msgid "On signup ask users twice for their password" -msgstr "" +msgid "Automatically fill out user-details from SSO account-data" +msgstr "Fyll automatisk ut brukeropplysninger fra SSO kontodata" #: common/models.py:950 +msgid "Mail twice" +msgstr "E-post to ganger" + +#: common/models.py:951 +msgid "On signup ask users twice for their mail" +msgstr "Ved registrering spør brukere to ganger for e-posten" + +#: common/models.py:956 +msgid "Password twice" +msgstr "Passord to ganger" + +#: common/models.py:957 +msgid "On signup ask users twice for their password" +msgstr "Ved registrerting, spør brukere to ganger for passord" + +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" -msgstr "" +msgstr "Gruppe for hvilke nye brukere som er tilknyttet registrering" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." -msgstr "" +msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" -msgstr "" +msgstr "Aktiver URL integrering" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" -msgstr "" +msgstr "Aktiver navigasjonsintegrering" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" -msgstr "" +msgstr "Aktiver app integrasjon" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 -msgid "Show subscribed parts" -msgstr "" - -#: common/models.py:1040 -msgid "Show subscribed parts on the homepage" -msgstr "" - -#: common/models.py:1045 -msgid "Show subscribed categories" -msgstr "" - -#: common/models.py:1046 -msgid "Show subscribed part categories on the homepage" -msgstr "" - #: common/models.py:1051 -msgid "Show latest parts" -msgstr "" +msgid "Show subscribed parts" +msgstr "Vis abbonerte deler" #: common/models.py:1052 -msgid "Show latest parts on the homepage" -msgstr "" +msgid "Show subscribed parts on the homepage" +msgstr "Vis abbonerte deler på hjemmesiden" #: common/models.py:1057 -msgid "Recent Part Count" -msgstr "" +msgid "Show subscribed categories" +msgstr "Vis abbonerte kategorier" #: common/models.py:1058 +msgid "Show subscribed part categories on the homepage" +msgstr "Vis abbonerte delkatekorier på hjemmesiden" + +#: common/models.py:1063 +msgid "Show latest parts" +msgstr "Vis nyeste deler" + +#: common/models.py:1064 +msgid "Show latest parts on the homepage" +msgstr "Vis nyeste deler på hjemmesiden" + +#: common/models.py:1069 +msgid "Recent Part Count" +msgstr "Antall nylig deler" + +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 -msgid "Show unvalidated BOMs" -msgstr "" - -#: common/models.py:1065 -msgid "Show BOMs that await validation on the homepage" -msgstr "" - -#: common/models.py:1070 -msgid "Show recent stock changes" -msgstr "" - -#: common/models.py:1071 -msgid "Show recently changed stock items on the homepage" -msgstr "" - #: common/models.py:1076 -msgid "Recent Stock Count" -msgstr "" +msgid "Show unvalidated BOMs" +msgstr "Vis uvaliderte BOMs" #: common/models.py:1077 -msgid "Number of recent stock items to display on index page" -msgstr "" +msgid "Show BOMs that await validation on the homepage" +msgstr "Vis BOMs som venter validering på hjemmesiden" #: common/models.py:1082 -msgid "Show low stock" -msgstr "" +msgid "Show recent stock changes" +msgstr "Vis nylige lagerendringer" #: common/models.py:1083 -msgid "Show low stock items on the homepage" -msgstr "" +msgid "Show recently changed stock items on the homepage" +msgstr "Vis nylig endret lagervarer på hjemmesiden" #: common/models.py:1088 -msgid "Show depleted stock" -msgstr "" +msgid "Recent Stock Count" +msgstr "Siste lagertelling" #: common/models.py:1089 +msgid "Number of recent stock items to display on index page" +msgstr "Antall nylige lagervarer som skal vises på indeksside" + +#: common/models.py:1094 +msgid "Show low stock" +msgstr "Vis lav lager" + +#: common/models.py:1095 +msgid "Show low stock items on the homepage" +msgstr "Vis lav lagervarer på hjemmesiden" + +#: common/models.py:1100 +msgid "Show depleted stock" +msgstr "Vis tom lagervarer" + +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" -msgstr "" +msgstr "Aktiv" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" -msgstr "" +msgstr "Sjetong" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" -msgstr "" +msgstr "Nøkkel for tilgang" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" -msgstr "" +msgstr "Hemmelig" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" -msgstr "" +msgstr "Delt hemmlighet for HMAC" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" -msgstr "" +msgstr "Melding ID" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" -msgstr "" +msgstr "Unik Id for denne meldingen" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" -msgstr "" +msgstr "Vert" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" -msgstr "" +msgstr "Tittel" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" -msgstr "" +msgstr "Overskrift for denne meldingen" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" -msgstr "" +msgstr "Brødtekst" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" -msgstr "" +msgstr "Arbeidet med" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" -msgstr "" +msgstr "Var arbeidet med denne meldingen ferdig?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" -msgstr "" +msgstr "Last opp fil" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" -msgstr "" +msgstr "Sammelign felter" #: common/views.py:95 msgid "Match Items" -msgstr "" +msgstr "Sammenlign varer" #: common/views.py:440 msgid "Fields matching failed" @@ -2326,75 +2343,73 @@ msgstr "" #: common/views.py:495 msgid "Parts imported" -msgstr "" +msgstr "Deler importert" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" -msgstr "" +msgstr "Forrige trinn" #: company/forms.py:24 part/forms.py:46 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" -msgstr "" +msgstr "URL" #: company/forms.py:25 part/forms.py:47 msgid "Image URL" -msgstr "" +msgstr "Bilde URL" #: company/models.py:105 msgid "Company description" -msgstr "" +msgstr "Beskrivelse av firma" #: company/models.py:106 msgid "Description of the company" -msgstr "" +msgstr "Beskrivelse av firmaet" #: company/models.py:112 company/templates/company/company_base.html:97 #: templates/InvenTree/settings/plugin_settings.html:55 #: templates/js/translated/company.js:349 msgid "Website" -msgstr "" +msgstr "Nettside" #: company/models.py:113 msgid "Company website URL" -msgstr "" +msgstr "Bedriftens nettside URL" #: company/models.py:117 company/templates/company/company_base.html:115 msgid "Address" -msgstr "" +msgstr "Adresse" #: company/models.py:118 msgid "Company address" -msgstr "" +msgstr "Firmaet adresse" #: company/models.py:121 msgid "Phone number" -msgstr "" +msgstr "Telefonnummer" #: company/models.py:122 msgid "Contact phone number" -msgstr "" +msgstr "Kontakt-telefonnummer" #: company/models.py:125 company/templates/company/company_base.html:129 #: templates/InvenTree/settings/user.html:48 msgid "Email" -msgstr "" +msgstr "E-post" #: company/models.py:125 msgid "Contact email address" -msgstr "" +msgstr "Kontakt e-post" #: company/models.py:128 company/templates/company/company_base.html:136 msgid "Contact" -msgstr "" +msgstr "Kontakt" #: company/models.py:129 msgid "Point of contact" @@ -2402,11 +2417,11 @@ msgstr "" #: company/models.py:131 msgid "Link to external company information" -msgstr "" +msgstr "Link til ekstern bedriftsinformasjon" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" -msgstr "" +msgstr "Bilde" #: company/models.py:144 msgid "is customer" @@ -2414,7 +2429,7 @@ msgstr "" #: company/models.py:144 msgid "Do you sell items to this company?" -msgstr "" +msgstr "Selger du varer til dette firmaet?" #: company/models.py:146 msgid "is supplier" @@ -2422,7 +2437,7 @@ msgstr "" #: company/models.py:146 msgid "Do you purchase items from this company?" -msgstr "" +msgstr "Kjøper du varer fra dette firmaet?" #: company/models.py:148 msgid "is manufacturer" @@ -2430,19 +2445,19 @@ msgstr "" #: company/models.py:148 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "Produserer dette firmaet deler?" #: company/models.py:152 company/serializers.py:270 #: company/templates/company/company_base.html:103 stock/serializers.py:179 msgid "Currency" -msgstr "" +msgstr "Valuta" #: company/models.py:155 msgid "Default currency used for this company" -msgstr "" +msgstr "Standardvaluta brukt for dette firmaet" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2641,88 +2657,88 @@ msgstr "" #: company/templates/company/company_base.html:56 #: part/templates/part/part_thumb.html:14 msgid "Download image from URL" -msgstr "" +msgstr "Last ned bilde fra URL" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" -msgstr "" +msgstr "Kunde" #: company/templates/company/company_base.html:108 msgid "Uses default currency" -msgstr "" +msgstr "Bruker standardvaluta" #: company/templates/company/company_base.html:122 msgid "Phone" -msgstr "" +msgstr "Telefon" #: company/templates/company/company_base.html:205 #: part/templates/part/part_base.html:471 msgid "Upload Image" -msgstr "" +msgstr "Last opp bilde" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" -msgstr "" +msgstr "Leverandør deler" #: company/templates/company/detail.html:19 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" -msgstr "" +msgstr "Oprett ny leverandørdel" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" -msgstr "" +msgstr "Ny leverandørdel" #: company/templates/company/detail.html:32 #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" -msgstr "" +msgstr "Valgmuligheter" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 #: part/templates/part/category.html:177 msgid "Order parts" -msgstr "" +msgstr "Bestill deler" #: company/templates/company/detail.html:42 #: company/templates/company/detail.html:89 msgid "Delete parts" -msgstr "" +msgstr "Slett deler" #: company/templates/company/detail.html:43 #: company/templates/company/detail.html:90 msgid "Delete Parts" -msgstr "" +msgstr "Slett deler" #: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" -msgstr "" +msgstr "Produsentdeler" #: company/templates/company/detail.html:66 msgid "Create new manufacturer part" -msgstr "" +msgstr "Opprett ny produsentdeler" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" -msgstr "" +msgstr "Ny produsentdel" #: company/templates/company/detail.html:107 msgid "Supplier Stock" -msgstr "" +msgstr "Leverandør lager" #: company/templates/company/detail.html:117 #: company/templates/company/sidebar.html:12 @@ -2730,130 +2746,130 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" -msgstr "" +msgstr "Bestillingsorder" #: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" -msgstr "" +msgstr "Opprett ny bestillingsorder" #: company/templates/company/detail.html:122 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" -msgstr "" +msgstr "Ny bestillingsorder" #: company/templates/company/detail.html:143 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" -msgstr "" +msgstr "Salgsordre" #: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" -msgstr "" +msgstr "Opprett ny salgsordre" #: company/templates/company/detail.html:148 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" -msgstr "" +msgstr "Ny salgsorder" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" -msgstr "" +msgstr "Tildelt lagervare" #: company/templates/company/detail.html:184 msgid "Company Notes" -msgstr "" +msgstr "Notater til firma" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" -msgstr "" +msgstr "Slett leverandørdeler?" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" -msgstr "" +msgstr "Alle valgte leverandørdeler vil slettes" #: company/templates/company/index.html:8 msgid "Supplier List" -msgstr "" +msgstr "Leverandørliste" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 #: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" -msgstr "" +msgstr "Produsenter" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 #: part/templates/part/detail.html:88 part/templates/part/part_base.html:76 msgid "Order part" -msgstr "" +msgstr "Bestill del" #: company/templates/company/manufacturer_part.html:40 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" -msgstr "" +msgstr "Endre produsent del" #: company/templates/company/manufacturer_part.html:44 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" -msgstr "" +msgstr "Slett produsentdel" #: company/templates/company/manufacturer_part.html:66 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" -msgstr "" +msgstr "Intern del" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" -msgstr "" +msgstr "Leverandører" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" -msgstr "" +msgstr "Slett leverandørdeler" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" -msgstr "" +msgstr "Slett" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2876,7 +2892,7 @@ msgstr "" #: company/templates/company/sidebar.html:6 msgid "Manufactured Parts" -msgstr "" +msgstr "Produserte deler" #: company/templates/company/sidebar.html:10 msgid "Supplied Parts" @@ -2888,12 +2904,12 @@ msgstr "" #: company/templates/company/sidebar.html:22 msgid "Assigned Stock Items" -msgstr "" +msgstr "Tildelt lagervarer" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3097,12 +3113,12 @@ msgstr "" #: label/models.py:258 msgid "Query filters (comma-separated list of key=value pairs)," -msgstr "" +msgstr "Spørrefilter (kommaseparert liste over nøkkel=verdiparer)," #: label/models.py:259 label/models.py:319 label/models.py:366 #: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" -msgstr "" +msgstr "Filtre" #: label/models.py:318 msgid "Query filters (comma-separated list of key=value pairs" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "Seriernummer eksisterer allerede" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "Sjekk bekreftelsesboksen" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "Sporbare varer kan ha angitte serienummer" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 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 672efaf6e8..74d0d6091d 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -34,9 +34,9 @@ msgstr "Nie znaleziono pasującej akcji" msgid "Enter date" msgstr "Wprowadź dane" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Potwierdź" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Powtórzony numer seryjny: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" @@ -119,133 +119,133 @@ msgstr "Nie znaleziono numerów seryjnych" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "Brak pliku" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Załącznik" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Łącze" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Komentarz" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Użytkownik" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "data przesłania" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Nazwa pliku nie może być pusta" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Nieprawidłowy katalog załącznika" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Nazwa pliku zawiera niedozwolony znak '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Brak rozszerzenia w nazwie pliku" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Załącznik o tej nazwie już istnieje" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Błąd zmiany nazwy pliku" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Nazwa" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Opis (opcjonalny)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "nadrzędny" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" @@ -253,83 +253,127 @@ msgstr "Numer musi być prawidłowy" msgid "Filename" msgstr "Nazwa pliku" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Niemiecki" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Grecki" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Angielski" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "Hiszpański (Meksyk)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "Portugalski" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Chiński" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "W toku" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "Podziel element podrzędny" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "Produkcja" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "Nieprawidłowy kod waluty" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Błędny znak w nazwie elementu" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN musi być zgodny z wyrażeniem regularnym {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "Niedozwolony znak w nazwie ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Ilość" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Numer seryjny" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "Na pewno anulować?" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "Zlecenie Budowy" @@ -665,7 +651,7 @@ msgstr "Zlecenie Budowy" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referencja" @@ -689,7 +675,7 @@ msgstr "Referencja" msgid "Brief description of the build" msgstr "Krótki opis budowy" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "Budowa nadrzędna" @@ -702,30 +688,31 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Część" @@ -741,7 +728,7 @@ msgstr "Odwołanie do zamówienia sprzedaży" msgid "SalesOrder to which this build is allocated" msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "Lokalizacja źródła" @@ -782,15 +769,15 @@ msgstr "Status budowania" msgid "Build status code" msgstr "Kod statusu budowania" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "Kod partii" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Data utworzenia" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Data zakończenia" @@ -812,7 +799,7 @@ msgstr "Data zakończenia" msgid "completed by" msgstr "zrealizowane przez" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "Wydany przez" @@ -820,12 +807,12 @@ msgstr "Wydany przez" msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "Odpowiedzialny" @@ -837,26 +824,26 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "Link Zewnętrzny" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "Uwagi" @@ -864,208 +851,284 @@ msgstr "Uwagi" msgid "Extra build notes" msgstr "Dodatkowe notatki do budowy" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "Nie określono danych wyjściowych budowy" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "Budowanie wyjścia jest już ukończone" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "Budowa" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Ilość" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "Lokalizacja" - -#: build/serializers.py:191 -msgid "Location for completed build outputs" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "Status" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "Towar musi znajdować się w magazynie" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Numer seryjny" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Lokalizacja" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Status" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "Towar musi znajdować się w magazynie" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "Edytuj Budowę" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "Anuluj Budowę" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "Data docelowa" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "Zaległe" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Zakończone" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "Zamówienie zakupu" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Dodane przez" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "Czy na pewno przerwać tę budowę?" @@ -1225,7 +1268,7 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Przeznaczenie" @@ -1234,13 +1277,13 @@ msgstr "Przeznaczenie" msgid "Destination location not specified" msgstr "Nie określono lokalizacji docelowej" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "Partia" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "Utworzony" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "Przydziel zapasy do budowy" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "Cofnij przydział zapasów" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Załączniki" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "Notatki tworzenia" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "Nowe zlecenie budowy" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "Tworzenie zostało przerwane" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "Utwórz zlecenie budowy" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "Numer seryjny już istnieje" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "Szablon" @@ -1649,9 +1660,9 @@ msgstr "Szablon" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "Złożenie" @@ -1659,8 +1670,8 @@ msgstr "Złożenie" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "Komponent" @@ -1668,7 +1679,7 @@ msgstr "Komponent" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "Możliwość zakupu" @@ -1676,8 +1687,8 @@ msgstr "Możliwość zakupu" msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "Możliwość sprzedaży" @@ -1685,10 +1696,10 @@ msgstr "Możliwość sprzedaży" msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "Możliwość śledzenia" @@ -1696,7 +1707,7 @@ msgstr "Możliwość śledzenia" msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "Raporty testów" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "dni" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "Cena" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "Aktywny" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "Wyślij plik" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "Punkt kontaktowy" msgid "Link to external company information" msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "Obraz" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Część bazowa" @@ -2453,11 +2468,11 @@ msgstr "Wybierz część" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "Producent" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "Część producenta" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "Jednostki" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "Dostawca" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Uwaga" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "Opakowanie" @@ -2584,7 +2600,7 @@ msgstr "Opakowanie" msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "wielokrotność" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "Klient" @@ -2679,7 +2695,7 @@ msgstr "Utwórz nowego dostawcę części" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "Nowy dostawca części" @@ -2687,8 +2703,8 @@ msgstr "Nowy dostawca części" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "Opcje" @@ -2716,7 +2732,7 @@ msgstr "Części producenta" msgid "Create new manufacturer part" msgstr "Utwórz nową część producenta" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "Nowa część producenta" @@ -2730,7 +2746,7 @@ msgstr "Zapasy dostawcy" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "Część wewnętrzna" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "Dostawcy" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "Usuń" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "Parametry" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "Dodaj parametr" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "Utwórz nowy towar" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "Nowy towar" @@ -2940,7 +2956,7 @@ msgstr "Informacja cenowa" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "Edytuj przedział cenowy" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "Stan" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "Cennik" @@ -2996,7 +3012,7 @@ msgstr "Cennik" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Towary" @@ -3026,20 +3042,20 @@ msgstr "Firmy" msgid "New Company" msgstr "Nowa firma" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Pobierz obraz" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "Zamówienie" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "Zlecenie zakupu" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "Odebrane" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "Cena zakupu" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "Status zamówienia" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "Wiersz" msgid "Select Supplier Part" msgstr "Wybierz dostawcę części" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "Akcje" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Domyślna lokalizacja" @@ -3968,7 +3944,7 @@ msgstr "Domyślne słowa kluczowe" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "Części" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "Nazwa części" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "Wariant" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "Opis części" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "Słowa kluczowe" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "Kategoria" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "IPN" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "Wersja" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "Czy ta część może być zbudowana z innych części?" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "Czy ta część może być użyta do budowy innych części?" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Wymagane" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "Dane" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:2629 +msgid "Level" +msgstr "" + +#: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:2629 +#: part/models.py:2698 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:2630 +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "Część 1" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "Część 2" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "Eksportuj" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "Nowy komponent" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "Warianty Części" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "Utwórz nowy wariant" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "Nowy wariant" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "Dodaj powiązane" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "Zestawienie materiałowe" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "Powiązane części" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "Dodaj powiązaną część" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Akcje magazynowe" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "Ostatni numer seryjny" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "Brak w magazynie" msgid "Low Stock" msgstr "Mała ilość w magazynie" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "Edytuj kategorię części" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "Numer Seryjny" @@ -5479,7 +5556,7 @@ msgstr "Wynik" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "Data" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "Data ważności" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "Data ważności tego zasobu" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "Numery seryjne" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "Numer seryjny już istnieje" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "Termin minął" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "Ostatnia aktualizacja" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "Lokacje nie są ustawione" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "Skaner kodów" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "Czy na pewno chcesz usunąć tą część?" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "Utwórz nową lokalizację magazynową" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "Ilość nie może być ujemna" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Dostępne" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Błąd 403: Odmowa dostępu" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Nie masz uprawnień wymaganych do dostępu do tej funkcji" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "Kaskadowe" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "Poziomy" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "Utwórz zlecenie budowy" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "Ilość za" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "Przydzielono" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "Potwierdź przydział zapasów" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "Dodaj stan" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "Szczegóły" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "Dodano" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "Uprawnienia" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "Uprawnienia nadane" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "Uprawnienie do wyświetlania przedmiotów" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "Uprawnienie do dodawania przedmiotów" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "Uprawnienie do edycji przedmiotów" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "Uprawnienie do usuwania przedmiotów" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index f65a3cf8c2..8aebfec50b 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:10\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -34,9 +34,9 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "" @@ -119,133 +119,133 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "" @@ -253,83 +253,127 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -689,7 +675,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "" @@ -812,7 +799,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 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 0f1af70cb7..581aaef8d6 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -34,9 +34,9 @@ msgstr "Соответствующее действие не найдено" msgid "Enter date" msgstr "Введите дату" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Подтвердить" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Дублировать серийный номер: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "недопустимое количество" @@ -119,133 +119,133 @@ msgstr "Серийных номеров не найдено" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "Файл не найден" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Вложения" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Ссылка" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Ссылка на внешний URL" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Комментарий" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Пользователь" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "дата загрузки" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Имя файла не должно быть пустым" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Неверная директория вложений" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Имя файла содержит запрещенные символы '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Отсутствует расширение для имени файла" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Вложение с таким именем файла уже существует" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Ошибка переименования файла" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Название" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Описание" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Описание (необязательно)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "родитель" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Должно быть действительным номером" @@ -253,83 +253,127 @@ msgstr "Должно быть действительным номером" msgid "Filename" msgstr "Имя файла" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Немецкий" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Греческий" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Английский" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Испанский" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "Испанский (Мексика)" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Французский" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "Португальский" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Китайский" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "Ошибка проверки состояния системы InvenTree" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "Ожидаемый" @@ -456,7 +500,7 @@ msgstr "Отделить от родительского элемента" msgid "Split child item" msgstr "Разбить дочерний элемент" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "Объединенные позиции на складе" @@ -484,41 +528,41 @@ msgstr "Получено по заказу на покупку" msgid "Production" msgstr "Продукция" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "Неверный код валюты" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Неверный символ в названии части" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN должен совпадать с регулярным выражением {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "Ссылка должна соответствовать шаблону {pattern}" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "Недопустимый символ в имени ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "Значение перегрузки не должно быть отрицательным" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "Перегрузка не может превысить 100%" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" -msgstr "Превышение должно быть целым числом или процентом" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" #: InvenTree/views.py:538 msgid "Delete Item" @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Количество" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "Введите количество для вывода сборки" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Серийные номера" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "Введите серийные номера для результатов сборки" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "Подтвердите создание выходной информации сборки" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "Подтвердите удаление результатов сборки" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "Подтвердите отмену" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "Подтвердите отмену сборки" @@ -657,7 +643,7 @@ msgstr "Неверный выбор для родительской сборки #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "Порядок сборки" @@ -665,7 +651,7 @@ msgstr "Порядок сборки" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "Ссылка на заказ" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Отсылка" @@ -689,7 +675,7 @@ msgstr "Отсылка" msgid "Brief description of the build" msgstr "Краткое описание сборки" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "Родительская сборка" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Детали" @@ -741,7 +728,7 @@ msgstr "Отсылка на заказ" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "Расположение источника" @@ -782,15 +769,15 @@ msgstr "Статус сборки" msgid "Build status code" msgstr "Код статуса сборки" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "Штрих код" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "Штрих код для этого вывода сборки" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Дата создания" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Дата завершения" @@ -812,7 +799,7 @@ msgstr "Дата завершения" msgid "completed by" msgstr "выполнено" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "Выдал/ла" @@ -820,12 +807,12 @@ msgstr "Выдал/ла" msgid "User who issued this build order" msgstr "Пользователь, выпустивший этот заказ на сборку" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "Ответственный" @@ -837,26 +824,26 @@ msgstr "Пользователь ответственный за этот зак #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "Внешняя ссылка" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "Заметки" @@ -864,208 +851,284 @@ msgstr "Заметки" msgid "Extra build notes" msgstr "Дополнительные заметки к сборке" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "Вывод сборки не указан" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "Вывод сборки уже завершен" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "Вывод сборки не совпадает с порядком сборки" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Элемент сборки должен указать вывод сборки, так как основная часть помечена как отслеживаемая" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "Выделенное количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "Предмет на складе перераспределен" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "Выделенное количество должно быть больше нуля" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "Выбранный предмет со складом не найден в BOM" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "Сборка" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "Предметы на складе" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "Исходный складской предмет" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Количество" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "Расположение" +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "Введите количество для вывода сборки" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "Статус" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "BOM Компонент" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "Компонент должен быть в наличии" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Серийные номера" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "Введите серийные номера для результатов сборки" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Расположение" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Статус" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "BOM Компонент" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "Компонент должен быть в наличии" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Превышено доступное количество ({q})" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "Для заказа сборки необходим остаток" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "Редактировать сборку" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "Отменить сборку" @@ -1105,110 +1168,90 @@ msgstr "Завершить сборку" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "Целевая дата" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "Просрочено" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Завершённые" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "Заказ покупателя" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Выдано" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "Незавершенные выходные данные" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "Партия" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "Создано" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Приложения" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "Заметки сборки" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "Подтвердите выделение запасов" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 9779928cb1..41855e602e 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -34,9 +34,9 @@ msgstr "Ingen matchande åtgärd hittades" msgid "Enter date" msgstr "Ange datum" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Bekräfta" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" @@ -119,133 +119,133 @@ msgstr "Inga serienummer hittades" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Bilaga" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Välj fil att bifoga" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Användare" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "uppladdningsdatum" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Filnamnet får inte vara tomt" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "Ogiltig katalog för bilaga" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Filnamnet innehåller ogiltiga tecken '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "Filnamn saknar ändelse" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "Det finns redan en bilaga med detta filnamn" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "Fel vid namnbyte av fil" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Namn" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Beskrivning" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Beskrivning (valfritt)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "överordnad" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" @@ -253,83 +253,127 @@ msgstr "Måste vara ett giltigt nummer" msgid "Filename" msgstr "Filnamn" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Tyska" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Grekiska" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "Engelska" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "Spanska" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Franska" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "Italienska" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Japanska" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Koreanska" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Norska" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Polska" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Ryska" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "Svenska" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Thailändska" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Kinesiska" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree systemhälsokontroll misslyckades" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "Väntar" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -689,7 +675,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "" @@ -812,7 +799,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index b41b4a9389..f96d272fac 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:10\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -34,9 +34,9 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "" @@ -119,133 +119,133 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "" @@ -253,83 +253,127 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "" @@ -665,7 +651,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -689,7 +675,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "" @@ -812,7 +799,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 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 1a73c9dea2..437de0dd78 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -34,9 +34,9 @@ msgstr "Eşleşen eylem bulunamadı" msgid "Enter date" msgstr "Tarih giriniz" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "Onay" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "Tekrarlanan seri {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" @@ -119,133 +119,133 @@ msgstr "Seri numarası bulunamadı" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Ek" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "Bağlantı" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Yorum" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "Dosya yorumu" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Kullanıcı" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "yükleme tarihi" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "Adı" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "üst" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" @@ -253,83 +253,127 @@ msgstr "Geçerli bir numara olmalı" msgid "Filename" msgstr "" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "Almanca" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "Yunanca" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "İngilizce" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "Fransızca" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "Çince" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree sistem sağlık kontrolü başarısız" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "Bekliyor" @@ -456,7 +500,7 @@ msgstr "Üst ögeden ayır" msgid "Split child item" msgstr "Alt ögeyi ayır" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,41 +528,41 @@ msgstr "Satın alma emri karşılığında alındı" msgid "Production" msgstr "Üretim" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "Geçerli bir para birimi kodu değil" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "Parça adında geçersiz karakter" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN regex kalıbıyla eşleşmelidir {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "({x}) adında geçersiz karakter" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "Fazlalık değeri negatif olmamalıdır" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "Fazlalık %100'ü geçmemelidir" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" -msgstr "Fazlalık bir tamsayı veya yüzde olmalıdır" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" #: InvenTree/views.py:538 msgid "Delete Item" @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "Miktar" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "Yapım işi çıktısı için miktarını girin" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "Seri Numaraları" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "Yapım işi çıktısı için seri numaraları girin" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "Yapım işi çıktısının oluşturulmasını onaylayın" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "Yapım işi çıktısının silinmesini onaylayın" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "İptali Onayla" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "Yapım işi iptalini onayla" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "Yapım İşi Emri" @@ -665,7 +651,7 @@ msgstr "Yapım İşi Emri" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referans" @@ -689,7 +675,7 @@ msgstr "Referans" msgid "Brief description of the build" msgstr "Yapım işinin kısa açıklaması" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "Üst Yapım İşi" @@ -702,30 +688,31 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Parça" @@ -741,7 +728,7 @@ msgstr "Satış Emri Referansı" msgid "SalesOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği satış emri" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "Kaynak Konum" @@ -782,15 +769,15 @@ msgstr "Yapım İşi Durumu" msgid "Build status code" msgstr "Yapım işi durum kodu" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "Sıra numarası" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "Oluşturulma tarihi" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Tamamlama tarihi" @@ -812,7 +799,7 @@ msgstr "Tamamlama tarihi" msgid "completed by" msgstr "tamamlayan" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "Veren" @@ -820,12 +807,12 @@ msgstr "Veren" msgid "User who issued this build order" msgstr "Bu yapım işi emrini veren kullanıcı" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "Sorumlu" @@ -837,26 +824,26 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "Harici Bağlantı" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "Notlar" @@ -864,208 +851,284 @@ msgstr "Notlar" msgid "Extra build notes" msgstr "Yapım işi için ekstra notlar" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "Yapım işi çıktısı belirtilmedi" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "Yapım işi çıktısı zaten tamamlanmış" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "Yapım İşi" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "Yapım işi için tahsis edilen parçalar" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "Miktar" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "Hedef stok kalemi" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "Konum" +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "Yapım işi çıktısı için miktarını girin" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "Durum" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "Gerekli stok tamamen tahsis edilemedi" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "Gerekli yapım işi miktarı tamamlanmadı" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "Seri Numaraları" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "Yapım işi çıktısı için seri numaraları girin" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "Konum" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Durum" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "Gerekli stok tamamen tahsis edilemedi" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "Gerekli yapım işi miktarı tamamlanmadı" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "Yapım İşini Düzenle" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "Yapım İşini İptal Et" @@ -1105,110 +1168,90 @@ msgstr "Tamamlanmış Yapım İşi" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Bu yapım işi emri, %(link)s sipariş emrine tahsis edilmiştir" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Bu yapım işi emri, %(link)s yapım iş emrinin altıdır" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "Yapım işi tamamlandı olarak işaretlenmeye hazır" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bekleyen çıktılar kaldığı için yapım işi emri tamamlanamıyor" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "Gerekli yapım işi miktarı henüz tamamlanmadı" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "Hedeflenen tarih" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "Vadesi geçmiş" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Tamamlandı" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "Sipariş Emri" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Veren" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "Tamamlanmamış Çıktılar" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "Tamamlanmamış yapım işi çıktıları kaldığı için yapım işi emri tamamlanamıyor" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "Bu Malzeme Listesi takip edilebilir parçalar içeriyor" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "Yapım işi çıktıları ayrı ayrı oluşturulmalıdır." - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "Takip edilebilir parçaların seri numaraları belirtilmiş olmalı" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "Birden çok tek yapım işi çıktısı oluşturmak için seri numaraları girin" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "Stok Kaynağı" msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Hedef" @@ -1234,13 +1277,13 @@ msgstr "Hedef" msgid "Destination location not specified" msgstr "Hedef konumu belirtilmedi" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "Toplu" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "Oluşturuldu" @@ -1269,7 +1312,7 @@ msgstr "Alt Yapım İşi Emrileri" msgid "Allocate Stock to Build" msgstr "Yapım İşi için Stok Tahsis Et" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "Stok tahsisini kaldır" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "Tamamlanmış Yapım İşi Çıktıları" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Ekler" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "Yapım İşi Notları" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "Notları Düzenle" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "Yeni Yapım İşi Emri" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "Yapım işi iptal edildi" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "Yapım İşi Çıktısı Oluştur" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "Maksimum çıktı miktarı " - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "Seri numaraları zaten mevcut" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "Seri numaraları takip edilebilir yapım işi çıktıları için gerekli" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "Yapım İşi Çıktısı Sil" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "Yapım işi stoku tahsisinin iptalini onayla" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "Onay kutusunu işaretleyin" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "Yapım işi çıktısı yapım işi ile eşleşmiyor" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "Yapım işi çıktısı belirtilmeli" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "Yapım işi çıktısı silindi" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "Yapım İşi Emrini Sil" @@ -1639,9 +1650,9 @@ msgstr "Kategori Paremetre Sablonu Kopyala" msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "Şablon" @@ -1649,9 +1660,9 @@ msgstr "Şablon" msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "Montaj" @@ -1659,8 +1670,8 @@ msgstr "Montaj" msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "Bileşen" @@ -1668,7 +1679,7 @@ msgstr "Bileşen" msgid "Parts can be used as sub-components by default" msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "Satın Alınabilir" @@ -1676,8 +1687,8 @@ msgstr "Satın Alınabilir" msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "Satılabilir" @@ -1685,10 +1696,10 @@ msgstr "Satılabilir" msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "Takip Edilebilir" @@ -1696,7 +1707,7 @@ msgstr "Takip Edilebilir" msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "İlgili parçaları göster" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "Test Raporları" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "günler" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "Fiyat" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "Aktif" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "Dosya Yükle" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Alanları Eşleştir" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "Resim" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Temel Parça" @@ -2453,11 +2468,11 @@ msgstr "Parça seçin" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "Üretici" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "Parametre adı" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "Değer" @@ -2507,9 +2522,9 @@ msgstr "Değer" msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "Tedarikçi" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Not" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "Paketleme" @@ -2584,7 +2600,7 @@ msgstr "Paketleme" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "çoklu" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "Müşteri" @@ -2679,7 +2695,7 @@ msgstr "Yeni tedarikçi parçası oluştur" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "Yeni Tedarikçi Parçası" @@ -2687,8 +2703,8 @@ msgstr "Yeni Tedarikçi Parçası" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "Tedarikçi Stoku" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "Yeni Satın Alma Emri" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "Yeni Satış Emri" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "Atanan Stok" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "Tedarikçi parçalarını sil" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "Tedarikçi Parçası" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "Fiyat Bilgisi" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "Stok" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "Tedarikçi Parçası Fiyatlandırması" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "Fiyatlandırma" @@ -2996,7 +3012,7 @@ msgstr "Fiyatlandırma" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -3026,20 +3042,20 @@ msgstr "Şirketler" msgid "New Company" msgstr "Yeni Şirket" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Resmi İndirin" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "Geçersiz yanıt: {code}" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "Aşağıdaki gerekli sütunlar için eksik seçimler" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "Dosya Alanları" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "Tedarikçi Parçası Seçin" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "Sipariş Emri için Dosya Yükle" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "İşlemler" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Varsayılan Konum" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "Parçalar" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "Sonraki kullanılabilir seri numaraları" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "Sonraki müsait seri numarası" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "En son seri numarası" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "Parça adı" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "Bu parça başka bir parçanın çeşidi mi?" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "Çeşidi" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "Parça açıklaması" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "Anahtar kelimeler" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "DPN" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "Revizyon" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "Minimum Stok" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "Gerekli" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "Malzeme Listesi dosyası gerekli sütün adlarını sağlandığı şekilde içermelidir " - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "Malzeme Listesi Şablonu Yükle" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "Test Şablonu Ekle" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "Parça Çeşitleri" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "Yeni çeşit oluştur" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "Yeni Çeşit" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "Parça Tedarikçileri" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "Aşağıdaki gerekli sütunlar için eksik seçimler" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "Dosya Alanları" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Stok işlemleri" @@ -4912,7 +4960,7 @@ msgstr "Satış Emirleri için Gerekli" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "Son Seri Numarası" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "Toplam Maliyet" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "Aşağıdaki parçalara kategori ayarla" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "Stok Yok" msgid "Low Stock" msgstr "Düşük Stok" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "Malzeme Listesi dosyası gerekli sütün adlarını sağlandığı şekilde içermelidir " + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "Malzeme Listesi Şablonu Yükle" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "Yeni parça çeşidi oluştur" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "Hiçbiri" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "Parça Parametre Şablonu Oluştur" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "Parça Parametre Şablonu Düzenle" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "Parça Parametre Şablonu Sil" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "Kategori Parametre Şablonu Oluştur" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "Kategori Parametre Şablonu Düzenle" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "Kategori Parametre Şablonu Sil" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "Seri Numara" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "Seri No" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "Bu stok kalemi için son kullanma tarihi" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "Benzersiz seri numaraları giriniz (veya boş bırakınız)" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "Seri numaralandırılmış stok için hedef konum(varsayılan olarak, geçerli konumda kalacaktır)" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "Seri numaraları" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "Benzersiz seri numaraları (miktar ile eşleşmeli)" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "İşlem notu ekle (isteğe bağlı)" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "Kurulacak stok kalemi" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "Sökülen ögeler için hedef konum" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "Seri numaraları zaten mevcut" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "Çeşide çevir" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "Stok kalemi tüm gerekli testleri geçmedi" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz." -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "Konum ayarlanmadı" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur." @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "Stok Kalemine Dönüştür" @@ -6268,11 +6316,11 @@ msgstr "Bu işlem kolayca geri alınamaz" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "Stok konumunu düzenle" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "Onay kutusunu işaretleyin" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "Stok ayarlamasını onayla" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "Yeni Stok konumu oluştur" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "Stok Konumunu Sil" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "Parça Parametre Şablonu" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "Kategori parametre şablonu bulunamadı" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "Şablonu Düzenle" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "Şablonu Sil" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "Parça parametre şablonu bulunamadı" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "InvenTree Sürüm Bilgisi" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "Kapat" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Mevcut" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Cevap Yok" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "Konuma Kaydet" msgid "Barcode does not match a valid location" msgstr "Barkod geçerli bir konumla eşleşmiyor" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "Seviyeler" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "Gerekli Parça" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "Yapım işi emri eksik" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "Tamamlanmış Yapım İşi Emri" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "Bu Malzeme Listesi takip edilebilir parçalar içeriyor" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "Takip edilebilir parçaların seri numaraları belirtilmiş olmalı" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "Birden çok tek yapım işi çıktısı oluşturmak için seri numaraları girin" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "Yapım İşi Çıktısı Oluştur" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "Stok tahsisini düzenle" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "Stok tahsisini sil" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Parçaları Seçin" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "Stok tahsisini onayla" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "Sorgu ile eşleşen test şablonu bulunamadı" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "Stok konumu ayarlanmadı" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "konumlar" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "Tanımsız konum" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "Detaylar" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "Konum artık yok" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "Konumları dahil et" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "Alt kategorilerdeki parçaları dahil et" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "DPN Var" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index fc68f7dd4a..d364825e86 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -34,9 +34,9 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "" @@ -119,133 +119,133 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "Bình luận" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "Người dùng" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "Ngày tải lên" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "Tên tập tin không được để trống" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "Mô tả" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "Mô tả (tùy chọn)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "" @@ -253,83 +253,127 @@ msgstr "" msgid "Filename" msgstr "Tên tập tin" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "" @@ -456,7 +500,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,40 +528,40 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" msgstr "" #: InvenTree/views.py:538 @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "" @@ -657,7 +643,7 @@ msgstr "" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "Tạo đơn hàng" @@ -665,7 +651,7 @@ msgstr "Tạo đơn hàng" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -689,7 +675,7 @@ msgstr "" msgid "Brief description of the build" msgstr "" -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "" @@ -702,30 +688,31 @@ msgstr "" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "Nguyên liệu" @@ -741,7 +728,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "" @@ -782,15 +769,15 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "Ngày hoàn thành" @@ -812,7 +799,7 @@ msgstr "Ngày hoàn thành" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "" @@ -820,12 +807,12 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "" @@ -837,26 +824,26 @@ msgstr "" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "" @@ -864,208 +851,284 @@ msgstr "" msgid "Extra build notes" msgstr "" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" +#: build/serializers.py:189 +msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "Trạng thái" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "Trạng thái" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "" @@ -1105,110 +1168,90 @@ msgstr "" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "Đã hoàn thành" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "" @@ -1269,7 +1312,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "" - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "" @@ -1649,9 +1660,9 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "" @@ -1659,8 +1670,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "" @@ -1668,7 +1679,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "" @@ -1676,8 +1687,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "" @@ -1685,10 +1696,10 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "" @@ -1696,7 +1707,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2328,15 +2345,13 @@ msgstr "" msgid "Parts imported" msgstr "" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "Nhà sản xuất" @@ -2488,7 +2503,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "" @@ -2499,7 +2514,7 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "" @@ -2507,9 +2522,9 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "Nhà cung cấp" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "" @@ -2679,7 +2695,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "" @@ -2687,8 +2703,8 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "" @@ -2716,7 +2732,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "" @@ -2730,7 +2746,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2824,36 +2840,36 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "Kiện hàng" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "" @@ -2996,7 +3012,7 @@ msgstr "" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3026,20 +3042,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "Đơn hàng" @@ -3276,7 +3292,7 @@ msgstr "" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "Giá mua" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "" msgid "Select Supplier Part" msgstr "" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -3994,408 +3970,478 @@ msgstr "Nguyên liệu" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "" msgid "Create new part" msgstr "" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "Số seri mới nhất" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "Hàng còn ít" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:775 -msgid "Match Parts" -msgstr "" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "" @@ -6663,45 +6715,45 @@ msgstr "" msgid "Report Settings" msgstr "" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "Chỉnh sửa cài đặt toàn cục" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "Chỉnh sửa cài đặt người dùng" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "Số seri mới nhất" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "Số seri mới nhất" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "" -#: users/models.py:212 +#: users/models.py:217 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 5335bbbfeb..8378fb6ddb 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-29 00:17+0000\n" -"PO-Revision-Date: 2022-01-29 01:11\n" +"POT-Creation-Date: 2022-02-18 20:36+0000\n" +"PO-Revision-Date: 2022-02-18 20:38\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -34,9 +34,9 @@ msgstr "未找到指定操作" msgid "Enter date" msgstr "输入日期" -#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24 -#: order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595 +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 msgid "Confirm" msgstr "确认" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {n}" msgstr "重复的序列号: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 -#: stock/views.py:1231 +#: stock/views.py:1082 msgid "Invalid quantity provided" msgstr "提供的数量无效" @@ -119,133 +119,133 @@ msgstr "未找到序列号" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" -#: InvenTree/models.py:120 +#: InvenTree/models.py:176 msgid "Missing file" msgstr "缺少文件" -#: InvenTree/models.py:121 +#: InvenTree/models.py:177 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1995 +#: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "附件" -#: InvenTree/models.py:133 +#: InvenTree/models.py:189 msgid "Select file to attach" msgstr "选择附件" -#: InvenTree/models.py:139 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:830 +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" msgstr "链接" -#: InvenTree/models.py:140 build/models.py:332 part/models.py:831 +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" msgstr "链接到外部 URL" -#: InvenTree/models.py:143 templates/js/translated/attachment.js:163 +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" msgstr "注释" -#: InvenTree/models.py:143 +#: InvenTree/models.py:199 msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223 -#: common/models.py:1224 common/models.py:1452 common/models.py:1453 -#: part/models.py:2265 part/models.py:2285 +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2692 +#: templates/js/translated/stock.js:2816 msgid "User" msgstr "用户" -#: InvenTree/models.py:153 +#: InvenTree/models.py:209 msgid "upload date" msgstr "上传日期" -#: InvenTree/models.py:176 +#: InvenTree/models.py:232 msgid "Filename must not be empty" msgstr "文件名不能为空!" -#: InvenTree/models.py:199 +#: InvenTree/models.py:255 msgid "Invalid attachment directory" msgstr "非法的附件目录" -#: InvenTree/models.py:209 +#: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "文件名包含非法字符 '{c}'" -#: InvenTree/models.py:212 +#: InvenTree/models.py:268 msgid "Filename missing extension" msgstr "缺少文件名扩展" -#: InvenTree/models.py:219 +#: InvenTree/models.py:275 msgid "Attachment with this filename already exists" msgstr "使用此文件名的附件已存在" -#: InvenTree/models.py:226 +#: InvenTree/models.py:282 msgid "Error renaming file" msgstr "重命名文件出错" -#: InvenTree/models.py:261 +#: InvenTree/models.py:317 msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438 -#: company/models.py:415 label/models.py:112 part/models.py:774 -#: part/models.py:2449 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:282 +#: templates/InvenTree/settings/settings.html:319 #: templates/js/translated/company.js:641 templates/js/translated/part.js:567 #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 -#: templates/js/translated/stock.js:2485 +#: templates/js/translated/stock.js:2609 msgid "Name" msgstr "名称" -#: InvenTree/models.py:284 build/models.py:209 +#: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552 -#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 #: templates/js/translated/part.js:626 templates/js/translated/part.js:999 #: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 #: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 -#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314 -#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" msgstr "描述信息" -#: InvenTree/models.py:285 +#: InvenTree/models.py:341 msgid "Description (optional)" msgstr "描述 (可选)" -#: InvenTree/models.py:293 +#: InvenTree/models.py:349 msgid "parent" msgstr "上级项" -#: InvenTree/serializers.py:65 part/models.py:2734 +#: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" msgstr "必须是有效数字" @@ -253,83 +253,127 @@ msgstr "必须是有效数字" msgid "Filename" msgstr "文件名" -#: InvenTree/settings.py:661 +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +msgid "Missing required column" +msgstr "" + +#: InvenTree/serializers.py:632 +msgid "Duplicate column" +msgstr "" + +#: InvenTree/settings.py:655 msgid "German" msgstr "德语" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:656 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:657 msgid "English" msgstr "英语" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:658 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:659 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:660 msgid "French" msgstr "法语" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:661 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:662 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:663 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:664 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:665 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:666 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:667 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:668 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:669 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:670 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:671 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:672 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:679 +#: InvenTree/settings.py:673 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:674 msgid "Chinese" msgstr "中文(简体)" @@ -346,7 +390,7 @@ msgid "InvenTree system health checks failed" msgstr "InventTree系统健康检查失败" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" msgstr "待定" @@ -456,7 +500,7 @@ msgstr "从父项拆分" msgid "Split child item" msgstr "拆分子项" -#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" msgstr "" @@ -484,41 +528,41 @@ msgstr "收到定购单" msgid "Production" msgstr "生产中" -#: InvenTree/validators.py:23 +#: InvenTree/validators.py:25 msgid "Not a valid currency code" msgstr "不是有效的货币代码" -#: InvenTree/validators.py:51 +#: InvenTree/validators.py:53 msgid "Invalid character in part name" msgstr "商品名称中存在无效字符" -#: InvenTree/validators.py:64 +#: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN 必须匹配正则表达式 {pat}" -#: InvenTree/validators.py:78 InvenTree/validators.py:92 -#: InvenTree/validators.py:106 +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" msgstr "引用必须匹配模板 {pattern}" -#: InvenTree/validators.py:114 +#: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" msgstr "名称中存在非法字符 ({x})" -#: InvenTree/validators.py:133 InvenTree/validators.py:149 +#: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" msgstr "备损值不能为负数" -#: InvenTree/validators.py:151 +#: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" msgstr "备损不能超过 100%" -#: InvenTree/validators.py:158 -msgid "Overage must be an integer value or a percentage" -msgstr "备损必须是整数值或百分比" +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" #: InvenTree/views.py:538 msgid "Delete Item" @@ -584,69 +628,11 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1293 -#: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1263 -#: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:805 order/models.py:1229 order/serializers.py:816 -#: order/templates/order/order_wizard/match_parts.html:30 -#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2636 -#: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 -#: part/templates/part/part_pricing.html:16 -#: 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:81 -#: report/templates/report/inventree_test_report_base.html:139 -#: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:181 -#: stock/templates/stock/item_base.html:262 -#: stock/templates/stock/item_base.html:270 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567 -#: templates/js/translated/build.js:295 templates/js/translated/build.js:495 -#: templates/js/translated/build.js:689 templates/js/translated/build.js:699 -#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422 -#: templates/js/translated/model_renderers.js:99 -#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 -#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 -#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 -#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 -#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 -#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391 -#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758 -#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779 -msgid "Quantity" -msgstr "数量" - -#: build/forms.py:37 -msgid "Enter quantity for build output" -msgstr "输入生产产出数量" - -#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:238 -#: templates/js/translated/stock.js:392 -msgid "Serial Numbers" -msgstr "序列号" - -#: build/forms.py:43 -msgid "Enter serial numbers for build outputs" -msgstr "输入生产产出的序列号" - -#: build/forms.py:49 -msgid "Confirm creation of build output" -msgstr "确认创建生产产出" - -#: build/forms.py:70 -msgid "Confirm deletion of build output" -msgstr "确认删除生产产出" - -#: build/forms.py:89 +#: build/forms.py:20 msgid "Confirm cancel" msgstr "确认取消" -#: build/forms.py:89 build/views.py:65 +#: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" msgstr "确认生产取消" @@ -657,7 +643,7 @@ msgstr "上级生产选项无效" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" msgstr "生产订单" @@ -665,7 +651,7 @@ msgstr "生产订单" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" @@ -676,11 +662,11 @@ msgid "Build Order Reference" msgstr "相关生产订单" #: build/models.py:201 order/models.py:213 order/models.py:541 -#: order/models.py:812 part/models.py:2645 -#: part/templates/part/bom_upload/match_parts.html:30 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "引用" @@ -689,7 +675,7 @@ msgstr "引用" msgid "Brief description of the build" msgstr "生产的简短描述." -#: build/models.py:221 build/templates/build/build_base.html:164 +#: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" msgstr "上级生产" @@ -702,30 +688,31 @@ msgstr "此次生产匹配的订单" #: build/templates/build/detail.html:30 company/models.py:705 #: order/models.py:876 order/models.py:950 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 -#: part/models.py:2211 part/models.py:2227 part/models.py:2246 -#: part/models.py:2263 part/models.py:2365 part/models.py:2487 -#: part/models.py:2620 part/models.py:2927 part/serializers.py:658 -#: part/templates/part/part_app_base.html:8 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338 -#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680 -#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419 -#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 #: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 #: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 -#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727 -#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534 -#: templates/js/translated/stock.js:2767 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" msgstr "商品" @@ -741,7 +728,7 @@ msgstr "相关销售订单" msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" -#: build/models.py:249 templates/js/translated/build.js:1407 +#: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" msgstr "来源地点" @@ -782,15 +769,15 @@ msgstr "生产状态" msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:287 stock/models.py:533 +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" msgstr "批量代码" -#: build/models.py:291 +#: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:294 order/models.py:129 part/models.py:969 +#: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" msgstr "创建日期" @@ -804,7 +791,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:1758 +#: templates/js/translated/build.js:1996 msgid "Completion Date" msgstr "完成日期:" @@ -812,7 +799,7 @@ msgstr "完成日期:" msgid "completed by" msgstr "完成人" -#: build/models.py:316 templates/js/translated/build.js:1729 +#: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" msgstr "发布者" @@ -820,12 +807,12 @@ msgstr "发布者" msgid "User who issued this build order" msgstr "发布此生产订单的用户" -#: build/models.py:325 build/templates/build/build_base.html:185 +#: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:973 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" msgstr "责任人" @@ -837,26 +824,26 @@ msgstr "负责此生产订单的用户" #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 #: part/templates/part/part_base.html:354 stock/models.py:527 -#: stock/templates/stock/item_base.html:373 +#: stock/templates/stock/item_base.html:375 msgid "External Link" msgstr "外部链接" -#: build/models.py:336 build/serializers.py:201 +#: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:814 order/models.py:1071 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:958 -#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 #: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 -#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" msgstr "备注" @@ -864,208 +851,284 @@ msgstr "备注" msgid "Extra build notes" msgstr "额外的生产备注" -#: build/models.py:717 +#: build/models.py:756 msgid "No build output specified" msgstr "未指定生产产出" -#: build/models.py:720 +#: build/models.py:759 msgid "Build output is already completed" msgstr "生产产出已完成" -#: build/models.py:723 +#: build/models.py:762 msgid "Build output does not match Build Order" msgstr "生产产出与订单不匹配" -#: build/models.py:1115 +#: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1124 +#: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1134 +#: build/models.py:1173 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1140 order/models.py:1189 +#: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" -#: build/models.py:1146 +#: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1203 +#: build/models.py:1242 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1263 stock/templates/stock/item_base.html:345 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660 +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" msgstr "生产" -#: build/models.py:1264 +#: build/models.py:1303 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696 -#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696 -#: stock/templates/stock/item_base.html:9 +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:367 -#: templates/js/translated/build.js:468 templates/js/translated/build.js:473 -#: templates/js/translated/build.js:1421 templates/js/translated/build.js:1803 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 -#: templates/js/translated/stock.js:2628 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 msgid "Stock Item" msgstr "库存项" -#: build/models.py:1281 +#: build/models.py:1320 msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1294 +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "数量" + +#: build/models.py:1333 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1302 +#: build/models.py:1341 msgid "Install into" msgstr "安装到" -#: build/models.py:1303 +#: build/models.py:1342 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:417 +#: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" msgstr "" -#: build/serializers.py:146 +#: build/serializers.py:150 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:154 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:158 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:164 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731 -#: stock/serializers.py:972 stock/templates/stock/item_base.html:313 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480 -#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508 -#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 -#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564 -#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936 -#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569 -msgid "Location" -msgstr "地点" +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "输入生产产出数量" -#: build/serializers.py:191 -msgid "Location for completed build outputs" -msgstr "" - -#: build/serializers.py:197 build/templates/build/build_base.html:137 -#: build/templates/build/detail.html:63 order/models.py:557 -#: order/serializers.py:247 stock/templates/stock/item_base.html:187 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716 -#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659 -#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795 -msgid "Status" -msgstr "状态" - -#: build/serializers.py:213 -msgid "A list of build outputs must be provided" -msgstr "" - -#: build/serializers.py:249 -msgid "Accept Unallocated" -msgstr "" - -#: build/serializers.py:250 -msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" - -#: build/serializers.py:260 templates/js/translated/build.js:149 -msgid "Required stock has not been fully allocated" -msgstr "所需库存尚未完全分配" - -#: build/serializers.py:265 -msgid "Accept Incomplete" -msgstr "" - -#: build/serializers.py:266 -msgid "Accept that the required number of build outputs have not been completed" -msgstr "" - -#: build/serializers.py:276 templates/js/translated/build.js:153 -msgid "Required build quantity has not been completed" -msgstr "所需生产数量尚未完成" - -#: build/serializers.py:285 -msgid "Build order has incomplete outputs" -msgstr "" - -#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760 -#: part/models.py:2919 -msgid "BOM Item" -msgstr "" - -#: build/serializers.py:323 -msgid "Build output" -msgstr "" - -#: build/serializers.py:332 -msgid "Build output must point to the same build" -msgstr "" - -#: build/serializers.py:379 -msgid "bom_item.part must point to the same part as the build order" -msgstr "" - -#: build/serializers.py:394 stock/serializers.py:585 -msgid "Item must be in stock" -msgstr "" - -#: build/serializers.py:408 order/models.py:280 order/serializers.py:240 +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:450 order/serializers.py:747 +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "序列号" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "输入生产产出的序列号" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:551 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "地点" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "状态" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "所需库存尚未完全分配" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "所需生产数量尚未完成" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:491 order/serializers.py:990 +#: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" msgstr "" -#: build/tasks.py:92 +#: build/tasks.py:98 msgid "Stock required for build order" msgstr "" @@ -1088,7 +1151,7 @@ msgid "Edit Build" msgstr "编辑生产" #: build/templates/build/build_base.html:56 -#: build/templates/build/build_base.html:215 build/views.py:56 +#: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" msgstr "取消生产" @@ -1105,110 +1168,90 @@ msgstr "生产完成" msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:96 +#: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:103 +#: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" msgstr "所需生产数量尚未完成" -#: build/templates/build/build_base.html:125 +#: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:146 +#: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:1753 templates/js/translated/order.js:854 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" msgstr "预计日期" -#: build/templates/build/build_base.html:151 +#: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" msgstr "此次生产的截止日期为 %(target)s" -#: build/templates/build/build_base.html:151 -#: build/templates/build/build_base.html:196 +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:299 -#: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 msgid "Overdue" msgstr "逾期" -#: build/templates/build/build_base.html:158 +#: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:1702 -#: templates/js/translated/table_filters.js:370 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 msgid "Completed" msgstr "已完成" -#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 #: order/models.py:1043 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:307 -#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" msgstr "销售订单" -#: build/templates/build/build_base.html:178 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "发布者" -#: build/templates/build/build_base.html:223 +#: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" msgstr "未完成输出" -#: build/templates/build/build_base.html:224 +#: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" msgstr "" -#: build/templates/build/build_output_create.html:7 -msgid "The Bill of Materials contains trackable parts" -msgstr "" - -#: build/templates/build/build_output_create.html:8 -msgid "Build outputs must be generated individually." -msgstr "" - -#: build/templates/build/build_output_create.html:9 -msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "" - -#: build/templates/build/build_output_create.html:15 -msgid "Trackable parts can have serial numbers specified" -msgstr "可追踪商品可以指定序列号" - -#: build/templates/build/build_output_create.html:16 -msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" - #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" msgstr "是否确定取消生产?" @@ -1225,7 +1268,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1234,13 +1277,13 @@ msgstr "" msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:707 +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1249,7 +1292,7 @@ msgstr "" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:1724 +#: templates/js/translated/build.js:1962 msgid "Created" msgstr "已创建" @@ -1269,7 +1312,7 @@ msgstr "子生产订单" msgid "Allocate Stock to Build" msgstr "为生产分配库存" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262 +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" msgstr "未分配库存" @@ -1329,52 +1372,60 @@ msgid "Output Actions" msgstr "" #: build/templates/build/detail.html:250 -msgid "Complete selected items" +msgid "Complete selected build outputs" msgstr "" #: build/templates/build/detail.html:251 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:266 +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 #: order/templates/order/purchase_order_detail.html:60 #: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213 -#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "附件" -#: build/templates/build/detail.html:294 +#: build/templates/build/detail.html:298 msgid "Build Notes" msgstr "生产备注" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132 -#: stock/templates/stock/item.html:235 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 msgid "Edit Notes" msgstr "编辑备注" -#: build/templates/build/detail.html:477 +#: build/templates/build/detail.html:502 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:478 +#: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:320 +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" msgstr "新建生产订单" @@ -1406,51 +1457,11 @@ msgstr "" msgid "Completed Items" msgstr "" -#: build/views.py:76 +#: build/views.py:73 msgid "Build was cancelled" msgstr "生产已取消" -#: build/views.py:88 -msgid "Create Build Output" -msgstr "创建创建生产产出" - -#: build/views.py:106 -msgid "Maximum output quantity is " -msgstr "最大产出量是 " - -#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257 -msgid "Serial numbers already exist" -msgstr "序列号已存在" - -#: build/views.py:131 -msgid "Serial numbers required for trackable build output" -msgstr "可追踪的生产产出需要序列号" - -#: build/views.py:197 -msgid "Delete Build Output" -msgstr "删除生产产出" - -#: build/views.py:218 -msgid "Confirm unallocation of build stock" -msgstr "" - -#: build/views.py:219 stock/views.py:352 -msgid "Check the confirmation box" -msgstr "选中确认框" - -#: build/views.py:231 -msgid "Build output does not match build" -msgstr "生产产出与生产不匹配" - -#: build/views.py:233 -msgid "Build output must be specified" -msgstr "必须指定生成产出" - -#: build/views.py:245 -msgid "Build output deleted" -msgstr "生产产出已删除" - -#: build/views.py:286 +#: build/views.py:114 msgid "Delete Build Order" msgstr "删除生产订单" @@ -1639,9 +1650,9 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2489 report/models.py:187 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:417 msgid "Template" msgstr "模板" @@ -1649,9 +1660,9 @@ msgstr "模板" msgid "Parts are templates by default" msgstr "" -#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082 +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/table_filters.js:429 msgid "Assembly" msgstr "组装" @@ -1659,8 +1670,8 @@ msgstr "组装" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:719 part/models.py:927 -#: templates/js/translated/table_filters.js:438 +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 msgid "Component" msgstr "组件" @@ -1668,7 +1679,7 @@ msgstr "组件" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:726 part/models.py:938 +#: common/models.py:726 part/models.py:968 msgid "Purchaseable" msgstr "可购买" @@ -1676,8 +1687,8 @@ msgstr "可购买" msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:733 part/models.py:943 -#: templates/js/translated/table_filters.js:446 +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 msgid "Salable" msgstr "可销售" @@ -1685,10 +1696,10 @@ msgstr "可销售" msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:740 part/models.py:933 +#: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:450 +#: templates/js/translated/table_filters.js:445 msgid "Trackable" msgstr "可追踪" @@ -1696,7 +1707,7 @@ msgstr "可追踪" msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:747 part/models.py:953 +#: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" @@ -1730,589 +1741,595 @@ msgstr "" msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:780 +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 msgid "Show related parts" msgstr "显示相关商品" -#: common/models.py:781 +#: common/models.py:793 msgid "Display related parts for a part" msgstr "" -#: common/models.py:787 +#: common/models.py:799 msgid "Create initial stock" msgstr "创建初始库存" -#: common/models.py:788 +#: common/models.py:800 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:794 +#: common/models.py:806 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:795 +#: common/models.py:807 msgid "Enable internal prices for parts" msgstr "启用内部商品价格" -#: common/models.py:801 +#: common/models.py:813 msgid "Internal Price as BOM-Price" msgstr "内部价格为BOM价格" -#: common/models.py:802 +#: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "在 BOM价格计算中使用内部价格(如设置)" -#: common/models.py:808 +#: common/models.py:820 msgid "Part Name Display Format" msgstr "" -#: common/models.py:809 +#: common/models.py:821 msgid "Format to display the part name" msgstr "" -#: common/models.py:816 +#: common/models.py:828 msgid "Enable Reports" msgstr "" -#: common/models.py:817 +#: common/models.py:829 msgid "Enable generation of reports" msgstr "" -#: common/models.py:823 templates/stats.html:25 +#: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:824 +#: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:830 +#: common/models.py:842 msgid "Page Size" msgstr "页面大小" -#: common/models.py:831 +#: common/models.py:843 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:841 +#: common/models.py:853 msgid "Test Reports" msgstr "测试报表" -#: common/models.py:842 +#: common/models.py:854 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:848 +#: common/models.py:860 msgid "Stock Expiry" msgstr "库存到期" -#: common/models.py:849 +#: common/models.py:861 msgid "Enable stock expiry functionality" msgstr "启用库存到期功能" -#: common/models.py:855 +#: common/models.py:867 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:856 +#: common/models.py:868 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:862 +#: common/models.py:874 msgid "Stock Stale Time" msgstr "" -#: common/models.py:863 +#: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:865 +#: common/models.py:877 msgid "days" msgstr "天" -#: common/models.py:870 +#: common/models.py:882 msgid "Build Expired Stock" msgstr "" -#: common/models.py:871 +#: common/models.py:883 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:877 +#: common/models.py:889 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:878 +#: common/models.py:890 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:884 +#: common/models.py:896 msgid "Build Order Reference Prefix" msgstr "生产订单参考前缀" -#: common/models.py:885 +#: common/models.py:897 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:890 +#: common/models.py:902 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:891 +#: common/models.py:903 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:895 +#: common/models.py:907 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:896 +#: common/models.py:908 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:901 +#: common/models.py:913 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:902 +#: common/models.py:914 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:908 +#: common/models.py:920 msgid "Enable password forgot" msgstr "" -#: common/models.py:909 +#: common/models.py:921 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:914 +#: common/models.py:926 msgid "Enable registration" msgstr "" -#: common/models.py:915 +#: common/models.py:927 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:920 +#: common/models.py:932 msgid "Enable SSO" msgstr "" -#: common/models.py:921 +#: common/models.py:933 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:926 +#: common/models.py:938 msgid "Email required" msgstr "" -#: common/models.py:927 +#: common/models.py:939 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:932 +#: common/models.py:944 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:933 +#: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:938 +#: common/models.py:950 msgid "Mail twice" msgstr "" -#: common/models.py:939 +#: common/models.py:951 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:944 +#: common/models.py:956 msgid "Password twice" msgstr "" -#: common/models.py:945 +#: common/models.py:957 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:950 +#: common/models.py:962 msgid "Group on signup" msgstr "" -#: common/models.py:951 +#: common/models.py:963 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:956 +#: common/models.py:968 msgid "Enforce MFA" msgstr "" -#: common/models.py:957 +#: common/models.py:969 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:964 +#: common/models.py:976 msgid "Enable URL integration" msgstr "" -#: common/models.py:965 +#: common/models.py:977 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:971 +#: common/models.py:983 msgid "Enable navigation integration" msgstr "" -#: common/models.py:972 +#: common/models.py:984 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:978 +#: common/models.py:990 msgid "Enable app integration" msgstr "" -#: common/models.py:979 +#: common/models.py:991 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:985 +#: common/models.py:997 msgid "Enable schedule integration" msgstr "" -#: common/models.py:986 +#: common/models.py:998 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:992 +#: common/models.py:1004 msgid "Enable event integration" msgstr "" -#: common/models.py:993 +#: common/models.py:1005 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1008 common/models.py:1216 +#: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1039 +#: common/models.py:1051 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1040 +#: common/models.py:1052 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1045 +#: common/models.py:1057 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1046 +#: common/models.py:1058 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1051 +#: common/models.py:1063 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:1052 +#: common/models.py:1064 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:1057 +#: common/models.py:1069 msgid "Recent Part Count" msgstr "" -#: common/models.py:1058 +#: common/models.py:1070 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1064 +#: common/models.py:1076 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1065 +#: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1070 +#: common/models.py:1082 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1071 +#: common/models.py:1083 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1076 +#: common/models.py:1088 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1077 +#: common/models.py:1089 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1082 +#: common/models.py:1094 msgid "Show low stock" msgstr "" -#: common/models.py:1083 +#: common/models.py:1095 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1100 msgid "Show depleted stock" msgstr "" -#: common/models.py:1089 +#: common/models.py:1101 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1106 msgid "Show needed stock" msgstr "" -#: common/models.py:1095 +#: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1112 msgid "Show expired stock" msgstr "" -#: common/models.py:1101 +#: common/models.py:1113 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1106 +#: common/models.py:1118 msgid "Show stale stock" msgstr "" -#: common/models.py:1107 +#: common/models.py:1119 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1112 +#: common/models.py:1124 msgid "Show pending builds" msgstr "" -#: common/models.py:1113 +#: common/models.py:1125 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1118 +#: common/models.py:1130 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:1119 +#: common/models.py:1131 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:1124 +#: common/models.py:1136 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1125 +#: common/models.py:1137 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1130 +#: common/models.py:1142 msgid "Show overdue POs" msgstr "" -#: common/models.py:1131 +#: common/models.py:1143 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1136 +#: common/models.py:1148 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1137 +#: common/models.py:1149 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1142 +#: common/models.py:1154 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1143 +#: common/models.py:1155 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1161 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:1150 +#: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:1156 +#: common/models.py:1168 msgid "Inline report display" msgstr "" -#: common/models.py:1157 +#: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:1163 +#: common/models.py:1175 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:1164 +#: common/models.py:1176 msgid "Number of results to show in search preview window" msgstr "搜索预览窗口中显示的结果数" -#: common/models.py:1170 +#: common/models.py:1182 msgid "Search Show Stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1183 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1177 +#: common/models.py:1189 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1178 +#: common/models.py:1190 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1184 +#: common/models.py:1196 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:1185 +#: common/models.py:1197 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:1191 +#: common/models.py:1203 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1192 +#: common/models.py:1204 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1198 +#: common/models.py:1210 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1199 +#: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1264 company/forms.py:43 +#: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1271 company/serializers.py:264 +#: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" msgstr "价格" -#: common/models.py:1272 +#: common/models.py:1284 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1429 common/models.py:1568 +#: common/models.py:1441 common/models.py:1580 msgid "Endpoint" msgstr "" -#: common/models.py:1430 +#: common/models.py:1442 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1439 +#: common/models.py:1451 msgid "Name for this webhook" msgstr "" -#: common/models.py:1444 part/models.py:948 plugin/models.py:46 +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:295 -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 msgid "Active" msgstr "" -#: common/models.py:1445 +#: common/models.py:1457 msgid "Is this webhook active" msgstr "" -#: common/models.py:1459 +#: common/models.py:1471 msgid "Token" msgstr "" -#: common/models.py:1460 +#: common/models.py:1472 msgid "Token for access" msgstr "" -#: common/models.py:1467 +#: common/models.py:1479 msgid "Secret" msgstr "" -#: common/models.py:1468 +#: common/models.py:1480 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1535 +#: common/models.py:1547 msgid "Message ID" msgstr "" -#: common/models.py:1536 +#: common/models.py:1548 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1544 +#: common/models.py:1556 msgid "Host" msgstr "" -#: common/models.py:1545 +#: common/models.py:1557 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1552 +#: common/models.py:1564 msgid "Header" msgstr "" -#: common/models.py:1553 +#: common/models.py:1565 msgid "Header of this message" msgstr "" -#: common/models.py:1559 +#: common/models.py:1571 msgid "Body" msgstr "" -#: common/models.py:1560 +#: common/models.py:1572 msgid "Body of this message" msgstr "" -#: common/models.py:1569 +#: common/models.py:1581 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1574 +#: common/models.py:1586 msgid "Worked on" msgstr "" -#: common/models.py:1575 +#: common/models.py:1587 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/bom_upload/upload_file.html:52 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213 -#: part/views.py:773 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "上传文件" -#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 -#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52 +#: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214 -#: part/views.py:774 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "匹配字段" @@ -2328,15 +2345,13 @@ msgstr "字段匹配失败" msgid "Parts imported" msgstr "已导入商品" -#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 -#: order/templates/order/order_wizard/match_parts.html:19 +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 -#: part/templates/part/bom_upload/match_fields.html:27 -#: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:50 #: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 msgid "Previous Step" msgstr "" @@ -2404,7 +2419,7 @@ msgstr "" msgid "Link to external company information" msgstr "链接到外部公司信息" -#: company/models.py:139 part/models.py:840 +#: company/models.py:139 part/models.py:870 msgid "Image" msgstr "图片" @@ -2442,7 +2457,7 @@ msgid "Default currency used for this company" msgstr "该公司使用的默认货币" #: company/models.py:320 company/models.py:535 stock/models.py:471 -#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2453,11 +2468,11 @@ msgstr "选择商品" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:380 +#: stock/templates/stock/item_base.html:382 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 -#: templates/js/translated/table_filters.js:389 +#: templates/js/translated/table_filters.js:384 msgid "Manufacturer" msgstr "制造商" @@ -2488,7 +2503,7 @@ msgstr "制造商商品描述" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:390 +#: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" msgstr "制造商商品" @@ -2499,7 +2514,7 @@ msgstr "参数名称" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" msgstr "数值" @@ -2507,9 +2522,9 @@ msgstr "数值" msgid "Parameter value" msgstr "参数值" -#: company/models.py:429 part/models.py:915 part/models.py:2457 +#: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 -#: templates/InvenTree/settings/settings.html:287 +#: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" msgstr "单位" @@ -2526,11 +2541,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:397 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:823 #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:388 msgid "Supplier" msgstr "供应商" @@ -2561,22 +2576,23 @@ msgid "Supplier part description" msgstr "供应商商品描述" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2648 report/templates/report/inventree_po_report.html:93 -#: report/templates/report/inventree_so_report.html:93 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "备注" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1781 +#: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:495 stock/templates/stock/item_base.html:338 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" msgstr "打包" @@ -2584,7 +2600,7 @@ msgstr "打包" msgid "Part packaging" msgstr "商品打包" -#: company/models.py:584 part/models.py:1783 +#: company/models.py:584 part/models.py:1819 msgid "multiple" msgstr "" @@ -2645,11 +2661,11 @@ msgstr "从 URL 下载图片" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 -#: stock/models.py:515 stock/serializers.py:626 -#: stock/templates/stock/item_base.html:290 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2610 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 msgid "Customer" msgstr "客户" @@ -2679,7 +2695,7 @@ msgstr "创建新的供应商商品" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:353 +#: part/templates/part/detail.html:356 msgid "New Supplier Part" msgstr "新建供应商商品" @@ -2687,8 +2703,8 @@ msgstr "新建供应商商品" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:171 part/templates/part/detail.html:362 -#: part/templates/part/detail.html:391 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 msgid "Options" msgstr "选项" @@ -2716,7 +2732,7 @@ msgstr "制造商商品" msgid "Create new manufacturer part" msgstr "新建制造商商品" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:381 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" msgstr "新建制造商商品" @@ -2730,7 +2746,7 @@ msgstr "供货商库存" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 @@ -2752,7 +2768,7 @@ msgstr "新建采购订单" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 @@ -2770,7 +2786,7 @@ msgid "New Sales Order" msgstr "新建销售订单" #: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1059 +#: templates/js/translated/build.js:1281 msgid "Assigned Stock" msgstr "" @@ -2780,13 +2796,13 @@ msgstr "公司备注" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:435 +#: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" msgstr "删除供应商商品?" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:436 +#: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" msgstr "删除所有选定的供应商商品" @@ -2824,36 +2840,36 @@ msgstr "内部商品" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "供应商" #: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:364 +#: part/templates/part/detail.html:367 msgid "Delete supplier parts" msgstr "删除供应商商品" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 #: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:212 +#: users/models.py:217 msgid "Delete" msgstr "删除" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" msgstr "参数" #: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:192 +#: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 -#: templates/InvenTree/settings/part.html:65 +#: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "新建参数" @@ -2862,7 +2878,7 @@ msgid "Delete parameters" msgstr "删除参数" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: part/templates/part/detail.html:895 msgid "Add Parameter" msgstr "添加参数" @@ -2892,8 +2908,8 @@ msgstr "" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 -#: stock/templates/stock/item_base.html:402 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" msgstr "供应商商品" @@ -2919,7 +2935,7 @@ msgstr "" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:369 msgid "New Stock Item" msgstr "" @@ -2940,7 +2956,7 @@ msgstr "价格信息" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 -#: part/templates/part/prices.html:271 part/views.py:1628 +#: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" msgstr "" @@ -2948,11 +2964,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1690 +#: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1676 +#: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" msgstr "" @@ -2965,15 +2981,15 @@ msgid "Delete price break" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:14 +#: part/templates/part/part_sidebar.html:15 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 -#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935 -#: templates/js/translated/stock.js:1588 templates/navbar.html:28 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" msgstr "库存" @@ -2987,7 +3003,7 @@ msgid "Supplier Part Pricing" msgstr "供应商商品价格" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:30 msgid "Pricing" msgstr "定价" @@ -2996,7 +3012,7 @@ msgstr "定价" #: stock/templates/stock/location.html:151 #: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "库存项" @@ -3026,20 +3042,20 @@ msgstr "公司" msgid "New Company" msgstr "新建公司信息" -#: company/views.py:129 part/views.py:593 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "下载图片" -#: company/views.py:158 part/views.py:625 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "图像大小超过下载允许的最大尺寸" -#: company/views.py:165 part/views.py:632 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "无效响应: {code}" -#: company/views.py:174 part/views.py:641 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" @@ -3256,16 +3272,16 @@ msgid "Supplier part must match supplier" msgstr "" #: order/models.py:855 order/models.py:946 order/models.py:1042 -#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" msgstr "" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:352 +#: stock/templates/stock/item_base.html:354 #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 -#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" msgstr "" @@ -3276,7 +3292,7 @@ msgstr "供应商商品" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 -#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:312 msgid "Received" msgstr "" @@ -3285,8 +3301,8 @@ msgid "Number of items received" msgstr "" #: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:359 -#: templates/js/translated/stock.js:1787 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 msgid "Purchase Price" msgstr "采购价格" @@ -3530,7 +3546,7 @@ msgstr "" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2451 msgid "Order Status" msgstr "" @@ -3574,73 +3590,20 @@ msgstr "" msgid "After placing this purchase order, line items will no longer be editable." msgstr "" -#: order/templates/order/order_wizard/match_fields.html:9 -#: part/templates/part/bom_upload/match_fields.html:9 -#: part/templates/part/import_wizard/ajax_match_fields.html:9 -#: part/templates/part/import_wizard/match_fields.html:9 -msgid "Missing selections for the following required columns" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:20 -#: part/templates/part/bom_upload/match_fields.html:20 -#: part/templates/part/import_wizard/ajax_match_fields.html:20 -#: part/templates/part/import_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:29 -#: order/templates/order/order_wizard/match_parts.html:21 -#: part/templates/part/bom_upload/match_fields.html:29 -#: part/templates/part/bom_upload/match_parts.html:21 -#: part/templates/part/import_wizard/match_fields.html:29 -#: part/templates/part/import_wizard/match_references.html:21 -msgid "Submit Selections" -msgstr "" - -#: order/templates/order/order_wizard/match_fields.html:35 -#: part/templates/part/bom_upload/match_fields.html:35 -#: part/templates/part/import_wizard/ajax_match_fields.html:28 -#: part/templates/part/import_wizard/match_fields.html:35 -msgid "File Fields" -msgstr "文件字段" - -#: order/templates/order/order_wizard/match_fields.html:42 -#: part/templates/part/bom_upload/match_fields.html:42 -#: part/templates/part/import_wizard/ajax_match_fields.html:35 -#: part/templates/part/import_wizard/match_fields.html:42 -msgid "Remove column" -msgstr "移除列" - -#: order/templates/order/order_wizard/match_fields.html:60 -#: part/templates/part/bom_upload/match_fields.html:60 -#: part/templates/part/import_wizard/ajax_match_fields.html:53 -#: part/templates/part/import_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:52 -#: part/templates/part/bom_upload/match_fields.html:71 -#: part/templates/part/bom_upload/match_parts.html:53 -#: part/templates/part/import_wizard/ajax_match_fields.html:64 -#: part/templates/part/import_wizard/ajax_match_references.html:42 -#: part/templates/part/import_wizard/match_fields.html:71 -#: part/templates/part/import_wizard/match_references.html:49 -#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311 -#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769 -msgid "Remove row" -msgstr "移除行" - #: order/templates/order/order_wizard/match_parts.html:12 -#: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" msgstr "提交数据中存在错误" +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + #: order/templates/order/order_wizard/match_parts.html:28 -#: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" @@ -3650,6 +3613,19 @@ msgstr "行" msgid "Select Supplier Part" msgstr "选择供应商商品" +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "移除行" + #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" msgstr "" @@ -3659,9 +3635,9 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 -#: part/templates/part/bom_upload/upload_file.html:21 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" msgstr "步骤 %(step)s / %(count)s" @@ -3819,7 +3795,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" msgstr "" @@ -3922,7 +3898,7 @@ msgstr "指定初始初始商品仓储地点" msgid "This field is required" msgstr "此字段为必填" -#: part/bom.py:125 part/models.py:83 part/models.py:849 +#: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "默认仓储地点" @@ -3968,7 +3944,7 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15 +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" @@ -3994,408 +3970,478 @@ msgstr "商品" msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:502 part/models.py:514 +#: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:644 +#: part/models.py:674 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:648 +#: part/models.py:678 msgid "Next available serial number is" msgstr "" -#: part/models.py:653 +#: part/models.py:683 msgid "Most recent serial number is" msgstr "" -#: part/models.py:748 +#: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:773 +#: part/models.py:803 part/models.py:2622 msgid "Part name" msgstr "商品名称" -#: part/models.py:780 +#: part/models.py:810 msgid "Is Template" msgstr "" -#: part/models.py:781 +#: part/models.py:811 msgid "Is this part a template part?" msgstr "" -#: part/models.py:791 +#: part/models.py:821 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:792 +#: part/models.py:822 msgid "Variant Of" msgstr "" -#: part/models.py:798 +#: part/models.py:828 msgid "Part description" msgstr "商品描述" -#: part/models.py:803 part/templates/part/category.html:86 +#: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "关键词" -#: part/models.py:804 +#: part/models.py:834 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:811 part/models.py:2283 part/models.py:2532 +#: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:186 +#: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" msgstr "类别" -#: part/models.py:812 +#: part/models.py:842 msgid "Part category" msgstr "商品类别" -#: part/models.py:817 part/templates/part/part_base.html:274 +#: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 -#: templates/js/translated/stock.js:1560 +#: templates/js/translated/stock.js:1684 msgid "IPN" msgstr "" -#: part/models.py:818 +#: part/models.py:848 msgid "Internal Part Number" msgstr "内部商品编号" -#: part/models.py:824 +#: part/models.py:854 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:825 part/templates/part/part_base.html:281 +#: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" msgstr "" -#: part/models.py:847 +#: part/models.py:877 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:894 part/templates/part/part_base.html:347 +#: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" msgstr "" -#: part/models.py:895 +#: part/models.py:925 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:902 +#: part/models.py:932 msgid "Default Expiry" msgstr "" -#: part/models.py:903 +#: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:908 part/templates/part/part_base.html:196 +#: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" msgstr "最低库存" -#: part/models.py:909 +#: part/models.py:939 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:916 +#: part/models.py:946 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:922 +#: part/models.py:952 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:928 +#: part/models.py:958 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:934 +#: part/models.py:964 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:939 +#: part/models.py:969 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:944 +#: part/models.py:974 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:949 +#: part/models.py:979 msgid "Is this part active?" msgstr "" -#: part/models.py:954 +#: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:959 +#: part/models.py:989 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "BOM checksum" msgstr "" -#: part/models.py:962 +#: part/models.py:992 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:965 +#: part/models.py:995 msgid "BOM checked by" msgstr "" -#: part/models.py:967 +#: part/models.py:997 msgid "BOM checked date" msgstr "" -#: part/models.py:971 +#: part/models.py:1001 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1783 +#: part/models.py:1819 msgid "Sell multiple" msgstr "" -#: part/models.py:2333 +#: part/models.py:2369 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2350 +#: part/models.py:2386 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2370 templates/js/translated/part.js:1714 -#: templates/js/translated/stock.js:1284 +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 msgid "Test Name" msgstr "" -#: part/models.py:2371 +#: part/models.py:2407 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2376 +#: part/models.py:2412 msgid "Test Description" msgstr "" -#: part/models.py:2377 +#: part/models.py:2413 msgid "Enter description for this test" msgstr "" -#: part/models.py:2382 templates/js/translated/part.js:1723 -#: templates/js/translated/table_filters.js:281 +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" -#: part/models.py:2383 +#: part/models.py:2419 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2388 templates/js/translated/part.js:1731 +#: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" msgstr "" -#: part/models.py:2389 +#: part/models.py:2425 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2394 templates/js/translated/part.js:1738 +#: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" msgstr "" -#: part/models.py:2395 +#: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2406 +#: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2442 +#: part/models.py:2478 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2450 +#: part/models.py:2486 msgid "Parameter Name" msgstr "" -#: part/models.py:2457 +#: part/models.py:2493 msgid "Parameter Units" msgstr "" -#: part/models.py:2487 +#: part/models.py:2523 msgid "Parent Part" msgstr "" -#: part/models.py:2489 part/models.py:2538 part/models.py:2539 -#: templates/InvenTree/settings/settings.html:181 +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Data" msgstr "" -#: part/models.py:2491 +#: part/models.py:2527 msgid "Parameter Value" msgstr "" -#: part/models.py:2543 templates/InvenTree/settings/settings.html:190 +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" msgstr "默认值" -#: part/models.py:2544 +#: part/models.py:2580 msgid "Default Parameter Value" msgstr "" +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "商品ID" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + #: part/models.py:2621 -msgid "Select parent part" +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" msgstr "" #: part/models.py:2629 -msgid "Sub part" +msgid "Level" msgstr "" #: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2636 +#: part/models.py:2705 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2638 templates/js/translated/bom.js:578 -#: templates/js/translated/bom.js:652 +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "可选项" -#: part/models.py:2638 +#: part/models.py:2707 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2641 +#: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2642 +#: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2645 +#: part/models.py:2714 msgid "BOM item reference" msgstr "" -#: part/models.py:2648 +#: part/models.py:2717 msgid "BOM item notes" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "Checksum" msgstr "" -#: part/models.py:2650 +#: part/models.py:2719 msgid "BOM line checksum" msgstr "" -#: part/models.py:2654 templates/js/translated/bom.js:669 +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "继承项" -#: part/models.py:2655 +#: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2660 templates/js/translated/bom.js:661 +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 msgid "Allow Variants" msgstr "" -#: part/models.py:2661 +#: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2746 stock/models.py:357 +#: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2755 part/models.py:2757 +#: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2886 +#: part/models.py:2955 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2908 +#: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2920 +#: part/models.py:2989 msgid "Parent BOM item" msgstr "" -#: part/models.py:2928 +#: part/models.py:2997 msgid "Substitute part" msgstr "" -#: part/models.py:2939 +#: part/models.py:3008 msgid "Part 1" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Part 2" msgstr "" -#: part/models.py:2943 +#: part/models.py:3012 msgid "Select Related Part" msgstr "" -#: part/models.py:2975 +#: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:659 +#: part/serializers.py:667 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:678 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:671 +#: part/serializers.py:679 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:676 +#: part/serializers.py:684 msgid "Include Inherited" msgstr "" -#: part/serializers.py:677 +#: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:690 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:683 +#: part/serializers.py:691 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/tasks.py:53 +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:806 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:809 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:812 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:821 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:829 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:848 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 msgid "Low stock notification" msgstr "" @@ -4418,7 +4464,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:270 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" msgstr "" @@ -4426,34 +4472,6 @@ msgstr "" msgid "Delete Items" msgstr "" -#: part/templates/part/bom_upload/match_parts.html:29 -msgid "Select Part" -msgstr "选择商品" - -#: part/templates/part/bom_upload/upload_file.html:8 -msgid "Return to BOM" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:13 -msgid "Upload Bill of Materials" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:33 -msgid "Requirements for BOM upload" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:35 -msgid "BOM Upload Template" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:36 -msgid "Each part must already exist in the database" -msgstr "每个商品必须已经存在于数据库" - #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" @@ -4519,7 +4537,7 @@ msgstr "导出" msgid "Create new part" msgstr "新建商品" -#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" msgstr "新商品" @@ -4639,138 +4657,168 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:162 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:163 +#: part/templates/part/detail.html:166 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:164 +#: part/templates/part/detail.html:167 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:191 +#: part/templates/part/detail.html:194 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49 +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/detail.html:233 +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:258 +#: part/templates/part/detail.html:261 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70 +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:264 +#: part/templates/part/detail.html:267 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:274 +#: part/templates/part/detail.html:277 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:276 templates/js/translated/part.js:272 +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:281 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:286 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:287 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:300 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:314 +#: part/templates/part/detail.html:317 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:339 +#: part/templates/part/detail.html:342 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:349 +#: part/templates/part/detail.html:352 msgid "Part Suppliers" msgstr "商品供应商" -#: part/templates/part/detail.html:377 +#: part/templates/part/detail.html:380 msgid "Part Manufacturers" msgstr "商品制造商" -#: part/templates/part/detail.html:393 +#: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" msgstr "删除制造商商品" -#: part/templates/part/detail.html:575 +#: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:576 +#: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:625 +#: part/templates/part/detail.html:628 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:682 +#: part/templates/part/detail.html:685 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:690 +#: part/templates/part/detail.html:693 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:785 +#: part/templates/part/detail.html:788 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 +#: part/templates/part/detail.html:845 msgid "Edit Part Notes" msgstr "编辑商品注释" -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" msgstr "" +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "文件字段" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "移除列" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." @@ -4819,7 +4867,7 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4912,7 +4960,7 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" msgstr "" @@ -4930,7 +4978,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:168 msgid "Search for serial number" msgstr "" @@ -4969,7 +5017,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:644 +#: templates/js/translated/bom.js:857 msgid "No supplier pricing available" msgstr "" @@ -5003,20 +5051,20 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "此商品无价格信息可用。" -#: part/templates/part/part_sidebar.html:11 +#: part/templates/part/part_sidebar.html:12 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:25 +#: part/templates/part/part_sidebar.html:26 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:31 +#: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" msgstr "" -#: part/templates/part/part_sidebar.html:45 +#: part/templates/part/part_sidebar.html:48 msgid "Test Templates" msgstr "" @@ -5089,7 +5137,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" msgstr "" @@ -5111,7 +5159,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1699 +#: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" msgstr "" @@ -5131,7 +5179,7 @@ msgstr "" msgid "Set category for the following parts" msgstr "为以下商品设置类别" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" @@ -5141,6 +5189,43 @@ msgstr "" msgid "Low Stock" msgstr "" +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "每个商品必须已经存在于数据库" + #: part/templates/part/variant_part.html:9 msgid "Create new part variant" msgstr "" @@ -5154,104 +5239,96 @@ msgstr "" msgid "Unknown database" msgstr "" -#: part/views.py:93 +#: part/views.py:90 msgid "Set Part Category" msgstr "设置商品类别" -#: part/views.py:143 +#: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" msgstr "为 {n} 个商品设置类别" -#: part/views.py:215 +#: part/views.py:212 msgid "Match References" msgstr "" -#: part/views.py:511 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:570 +#: part/views.py:568 msgid "Part QR Code" msgstr "商品二维码" -#: part/views.py:672 +#: part/views.py:670 msgid "Select Part Image" msgstr "选择商品图像" -#: part/views.py:698 +#: part/views.py:696 msgid "Updated part image" msgstr "更新商品图像" -#: part/views.py:701 +#: part/views.py:699 msgid "Part image not found" msgstr "未找到商品图像" -#: part/views.py:775 -msgid "Match Parts" -msgstr "匹配商品" - -#: part/views.py:1110 -msgid "Export Bill of Materials" -msgstr "" - -#: part/views.py:1159 +#: part/views.py:850 msgid "Confirm Part Deletion" msgstr "确认删除商品" -#: part/views.py:1166 +#: part/views.py:857 msgid "Part was deleted" msgstr "商品已删除" -#: part/views.py:1175 +#: part/views.py:866 msgid "Part Pricing" msgstr "商品价格" -#: part/views.py:1324 +#: part/views.py:1015 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1334 +#: part/views.py:1025 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1341 +#: part/views.py:1032 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1400 templates/js/translated/part.js:315 +#: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" msgstr "编辑商品类别" -#: part/views.py:1438 +#: part/views.py:1129 msgid "Delete Part Category" msgstr "删除商品类别" -#: part/views.py:1444 +#: part/views.py:1135 msgid "Part category was deleted" msgstr "商品类别已删除" -#: part/views.py:1453 +#: part/views.py:1144 msgid "Create Category Parameter Template" msgstr "创建类别参数模板" -#: part/views.py:1554 +#: part/views.py:1245 msgid "Edit Category Parameter Template" msgstr "编辑类别参数模板" -#: part/views.py:1610 +#: part/views.py:1301 msgid "Delete Category Parameter Template" msgstr "删除类别参数模板" -#: part/views.py:1632 +#: part/views.py:1323 msgid "Added new price break" msgstr "" -#: part/views.py:1708 +#: part/views.py:1399 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1716 +#: part/views.py:1407 msgid "Delete Internal Price Break" msgstr "" @@ -5453,12 +5530,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:519 stock/templates/stock/item_base.html:156 -#: templates/js/translated/build.js:293 templates/js/translated/build.js:697 -#: templates/js/translated/build.js:1073 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" msgstr "序列号" @@ -5479,7 +5556,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" msgstr "" @@ -5497,71 +5574,67 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756 -#: templates/js/translated/stock.js:2785 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 msgid "Serial" msgstr "" -#: stock/api.py:476 +#: stock/api.py:501 msgid "Quantity is required" msgstr "" -#: stock/api.py:483 +#: stock/api.py:508 msgid "Valid part must be supplied" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576 -#: stock/templates/stock/item_base.html:193 -#: templates/js/translated/stock.js:1709 +#: stock/api.py:535 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 msgid "Expiry Date" msgstr "" -#: stock/forms.py:78 stock/forms.py:252 +#: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" msgstr "" -#: stock/forms.py:81 +#: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: stock/forms.py:136 +#: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Serial numbers" msgstr "" -#: stock/forms.py:138 +#: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" msgstr "" -#: stock/forms.py:140 stock/forms.py:224 +#: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" msgstr "" -#: stock/forms.py:180 -msgid "Stock item to install" -msgstr "" - -#: stock/forms.py:210 -msgid "Must not exceed available quantity" -msgstr "" - -#: stock/forms.py:222 +#: stock/forms.py:169 msgid "Destination location for uninstalled items" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm uninstall" msgstr "" -#: stock/forms.py:226 +#: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" #: stock/models.py:62 stock/models.py:613 -#: stock/templates/stock/item_base.html:416 +#: stock/templates/stock/item_base.html:418 msgid "Owner" msgstr "" @@ -5623,7 +5696,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:502 stock/templates/stock/item_base.html:298 +#: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" msgstr "" @@ -5733,7 +5806,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1214 stock/serializers.py:775 +#: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" @@ -5769,7 +5842,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1983 templates/js/translated/table_filters.js:271 +#: stock/models.py:1983 msgid "Test result" msgstr "" @@ -5806,7 +5879,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973 +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" msgstr "" @@ -5818,63 +5891,79 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:589 +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "序列号已存在" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:593 +#: stock/serializers.py:650 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:597 +#: stock/serializers.py:654 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:627 +#: stock/serializers.py:684 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:633 +#: stock/serializers.py:690 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:641 +#: stock/serializers.py:698 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:651 stock/serializers.py:881 +#: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:739 +#: stock/serializers.py:796 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:744 +#: stock/serializers.py:801 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:745 +#: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:750 +#: stock/serializers.py:807 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:751 +#: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:818 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:843 +#: stock/serializers.py:900 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:871 +#: stock/serializers.py:928 msgid "Stock transaction notes" msgstr "" @@ -5919,22 +6008,14 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:154 stock/views.py:482 +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334 +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:354 -msgid "Edit Test Result" -msgstr "" - -#: stock/templates/stock/item.html:368 -msgid "Delete Test Result" -msgstr "" - #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 @@ -5995,129 +6076,129 @@ msgstr "" msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:101 +#: stock/templates/stock/item_base.html:102 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:117 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:120 +#: stock/templates/stock/item_base.html:122 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:123 +#: stock/templates/stock/item_base.html:125 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:206 -#: templates/js/translated/stock.js:1722 +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:211 +#: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:215 +#: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:240 +#: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." msgstr "此库存项目正在生产中,无法编辑。" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:254 +#: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:262 +#: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:270 +#: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:276 +#: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:317 -#: templates/js/translated/build.js:1095 +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 msgid "No location set" msgstr "未设置仓储地点" -#: stock/templates/stock/item_base.html:324 +#: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:366 +#: stock/templates/stock/item_base.html:368 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:384 +#: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:411 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:499 +#: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" msgstr "" @@ -6130,39 +6211,6 @@ msgstr "" msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" -#: stock/templates/stock/item_install.html:8 -msgid "Install another Stock Item into this item." -msgstr "" - -#: stock/templates/stock/item_install.html:11 -#: stock/templates/stock/item_install.html:24 -msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" - -#: stock/templates/stock/item_install.html:14 -msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" -msgstr "" - -#: stock/templates/stock/item_install.html:15 -msgid "The Stock Item is currently in stock" -msgstr "" - -#: stock/templates/stock/item_install.html:16 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" - -#: stock/templates/stock/item_install.html:21 -msgid "Install this Stock Item in another stock item." -msgstr "" - -#: stock/templates/stock/item_install.html:27 -msgid "The part associated to this Stock Item belongs to another part's BOM" -msgstr "" - -#: stock/templates/stock/item_install.html:28 -msgid "This Stock Item is serialized and does not belong to another item" -msgstr "" - #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." msgstr "" @@ -6247,7 +6295,7 @@ msgstr "" msgid "The following stock items will be uninstalled" msgstr "" -#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" msgstr "" @@ -6268,11 +6316,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:162 templates/js/translated/stock.js:139 +#: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" msgstr "编辑仓储地点" -#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266 +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6300,59 +6348,63 @@ msgstr "" msgid "Confirm test data deletion" msgstr "" +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "选中确认框" + #: stock/views.py:456 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:630 +#: stock/views.py:481 msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:1074 +#: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:738 +#: stock/views.py:589 msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:332 +#: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:910 +#: stock/views.py:761 msgid "Create new Stock Location" msgstr "新建仓储地点" -#: stock/views.py:1011 +#: stock/views.py:862 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:312 +#: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:1235 +#: stock/views.py:1086 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1335 +#: stock/views.py:1186 msgid "Delete Stock Location" msgstr "删除仓储地点" -#: stock/views.py:1348 +#: stock/views.py:1199 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1359 +#: stock/views.py:1210 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1366 +#: stock/views.py:1217 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1375 +#: stock/views.py:1226 msgid "Add Stock Tracking Entry" msgstr "" @@ -6527,15 +6579,15 @@ msgstr "" msgid "Part Settings" msgstr "商品设置" -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "Part Import" msgstr "商品导入" -#: templates/InvenTree/settings/part.html:47 +#: templates/InvenTree/settings/part.html:48 msgid "Import Part" msgstr "导入商品" -#: templates/InvenTree/settings/part.html:61 +#: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" msgstr "商品参数模板" @@ -6663,45 +6715,45 @@ msgstr "采购订单设置" msgid "Report Settings" msgstr "报表设置" -#: templates/InvenTree/settings/setting.html:30 +#: templates/InvenTree/settings/setting.html:33 msgid "No value set" msgstr "未设置值" -#: templates/InvenTree/settings/setting.html:41 +#: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" msgstr "编辑设置" -#: templates/InvenTree/settings/settings.html:78 +#: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:80 +#: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:82 +#: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" msgstr "未找到类别参数模板" -#: templates/InvenTree/settings/settings.html:193 -#: templates/InvenTree/settings/settings.html:292 +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" msgstr "编辑模板" -#: templates/InvenTree/settings/settings.html:194 -#: templates/InvenTree/settings/settings.html:293 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" msgstr "删除模板" -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" msgstr "未找到商品参数模板" -#: templates/InvenTree/settings/settings.html:276 +#: templates/InvenTree/settings/settings.html:313 msgid "ID" msgstr "" @@ -6981,7 +7033,7 @@ msgstr "帮助翻译工作!" #: templates/InvenTree/settings/user_display.html:102 #, python-format msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "InventTree web 应用程序的本地语言翻译是 社区通过crowdin贡献。欢迎并鼓励提交信息。" +msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" @@ -6996,10 +7048,11 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53 -#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678 -#: templates/js/translated/modals.js:983 templates/modals.html:15 -#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 msgid "Close" msgstr "" @@ -7275,14 +7328,14 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1117 +#: templates/js/translated/bom.js:1335 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189 -#: templates/js/translated/build.js:1810 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "空闲" @@ -7325,11 +7378,11 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" @@ -7341,27 +7394,27 @@ msgstr "" msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" @@ -7373,11 +7426,11 @@ msgstr "" msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078 +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079 +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" @@ -7446,7 +7499,7 @@ msgid "Unknown response from server" msgstr "" #: templates/js/translated/barcode.js:140 -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "Invalid server response" msgstr "" @@ -7474,7 +7527,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" msgstr "" @@ -7516,327 +7569,369 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:36 +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 msgid "Download BOM Template" msgstr "" -#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518 +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" msgstr "" -#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519 +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" msgstr "" -#: templates/js/translated/bom.js:81 +#: templates/js/translated/bom.js:294 msgid "Cascading" msgstr "" -#: templates/js/translated/bom.js:82 +#: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" msgstr "" -#: templates/js/translated/bom.js:87 +#: templates/js/translated/bom.js:300 msgid "Levels" msgstr "等级" -#: templates/js/translated/bom.js:88 +#: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: templates/js/translated/bom.js:94 +#: templates/js/translated/bom.js:307 msgid "Include Parameter Data" msgstr "包含参数数据" -#: templates/js/translated/bom.js:95 +#: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" msgstr "" -#: templates/js/translated/bom.js:100 +#: templates/js/translated/bom.js:313 msgid "Include Stock Data" msgstr "包括库存数据" -#: templates/js/translated/bom.js:101 +#: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" msgstr "在导出 BOM 中包括库存数据" -#: templates/js/translated/bom.js:106 +#: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" msgstr "包括制造商数据" -#: templates/js/translated/bom.js:107 +#: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" msgstr "在导出 BOM 中包含制造商数据" -#: templates/js/translated/bom.js:112 +#: templates/js/translated/bom.js:325 msgid "Include Supplier Data" msgstr "包含供应商数据" -#: templates/js/translated/bom.js:113 +#: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" msgstr "在导出 BOM 中包含供应商数据" -#: templates/js/translated/bom.js:296 +#: templates/js/translated/bom.js:509 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:352 +#: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" msgstr "" -#: templates/js/translated/bom.js:363 +#: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:369 +#: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:408 +#: templates/js/translated/bom.js:621 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:409 +#: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:528 +#: templates/js/translated/bom.js:741 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171 +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:537 +#: templates/js/translated/bom.js:750 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:609 +#: templates/js/translated/bom.js:822 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:624 +#: templates/js/translated/bom.js:837 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:631 +#: templates/js/translated/bom.js:844 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769 +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:740 +#: templates/js/translated/bom.js:953 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:742 +#: templates/js/translated/bom.js:955 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:744 +#: templates/js/translated/bom.js:957 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920 +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903 +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915 +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:898 +#: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155 +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1122 +#: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" msgstr "" -#: templates/js/translated/build.js:84 +#: templates/js/translated/build.js:85 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:119 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:139 +#: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" msgstr "" -#: templates/js/translated/build.js:144 +#: templates/js/translated/build.js:145 msgid "Build Order is incomplete" msgstr "生产订单未完成" -#: templates/js/translated/build.js:172 +#: templates/js/translated/build.js:173 msgid "Complete Build Order" msgstr "生产订单完成" -#: templates/js/translated/build.js:193 +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "可追踪商品可以指定序列号" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "创建创建生产产出" + +#: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" msgstr "" -#: templates/js/translated/build.js:204 +#: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:213 +#: templates/js/translated/build.js:293 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:221 +#: templates/js/translated/build.js:301 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:244 +#: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" msgstr "" -#: templates/js/translated/build.js:262 +#: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:280 +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:281 +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" msgstr "" -#: templates/js/translated/build.js:335 +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" msgstr "" -#: templates/js/translated/build.js:351 +#: templates/js/translated/build.js:431 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:446 +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:484 templates/js/translated/order.js:1848 +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" msgstr "未指定仓储地点" -#: templates/js/translated/build.js:663 +#: templates/js/translated/build.js:885 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1112 templates/js/translated/build.js:1821 +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1114 templates/js/translated/build.js:1822 +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1132 +#: templates/js/translated/build.js:1354 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1142 +#: templates/js/translated/build.js:1364 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:1389 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1184 +#: templates/js/translated/build.js:1406 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1194 templates/js/translated/build.js:1420 -#: templates/js/translated/build.js:1817 templates/js/translated/order.js:2227 +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1250 templates/js/translated/order.js:2307 +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1254 templates/stock_table.html:53 +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1257 templates/js/translated/order.js:2300 +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:1499 +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1393 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "选择商品" -#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1551 +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1408 templates/js/translated/order.js:1565 +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1437 templates/js/translated/order.js:1600 +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" msgstr "确认库存分配" -#: templates/js/translated/build.js:1438 +#: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1449 templates/js/translated/order.js:1613 +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1519 templates/js/translated/order.js:1690 +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1637 +#: templates/js/translated/build.js:1875 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213 -#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520 -#: templates/js/translated/stock.js:2479 +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1674 +#: templates/js/translated/build.js:1912 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698 +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" msgstr "没有用户信息" -#: templates/js/translated/build.js:1747 +#: templates/js/translated/build.js:1985 msgid "No information" msgstr "" -#: templates/js/translated/build.js:1798 +#: templates/js/translated/build.js:2036 msgid "No parts allocated for" msgstr "" @@ -7966,48 +8061,60 @@ msgstr "" msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 -#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:352 +#: templates/js/translated/forms.js:353 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:367 +#: templates/js/translated/forms.js:368 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:381 +#: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:395 +#: templates/js/translated/forms.js:396 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:680 +#: templates/js/translated/forms.js:681 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1082 templates/modals.html:19 +#: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1487 +#: templates/js/translated/forms.js:1558 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1691 +#: templates/js/translated/forms.js:1768 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1930 +#: templates/js/translated/forms.js:2013 msgid "Clear input" msgstr "" +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + #: templates/js/translated/helpers.js:19 msgid "YES" msgstr "" @@ -8017,7 +8124,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1050 +#: templates/js/translated/stock.js:1051 msgid "Select Stock Items" msgstr "选择库存项" @@ -8072,7 +8179,7 @@ msgid "Cancel" msgstr "取消" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 -#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" msgstr "" @@ -8097,31 +8204,31 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:934 +#: templates/js/translated/modals.js:937 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:946 +#: templates/js/translated/modals.js:949 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1043 +#: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1058 +#: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1059 +#: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1082 +#: templates/js/translated/modals.js:1085 msgid "Error requesting form data" msgstr "" @@ -8141,10 +8248,6 @@ msgstr "" msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:182 -msgid "Part ID" -msgstr "商品ID" - #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" @@ -8210,7 +8313,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" msgstr "" @@ -8344,7 +8447,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1436 +#: templates/js/translated/stock.js:1560 msgid "Shipped to customer" msgstr "" @@ -8545,12 +8648,12 @@ msgid "No category" msgstr "没有分类" #: templates/js/translated/part.js:1296 -#: templates/js/translated/table_filters.js:430 +#: templates/js/translated/table_filters.js:425 msgid "Low stock" msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 -#: templates/js/translated/stock.js:2440 +#: templates/js/translated/stock.js:2564 msgid "Display as list" msgstr "" @@ -8558,7 +8661,7 @@ msgstr "" msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459 +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" msgstr "" @@ -8566,7 +8669,7 @@ msgstr "" msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503 +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" msgstr "" @@ -8574,11 +8677,12 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242 +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243 +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 msgid "Delete test result" msgstr "" @@ -8687,347 +8791,375 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:74 +#: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181 -msgid "Next available serial number" -msgstr "" - -#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183 -msgid "Latest serial number" -msgstr "" - -#: templates/js/translated/stock.js:102 +#: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:112 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:155 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:233 +#: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:382 +#: templates/js/translated/stock.js:383 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:395 +#: templates/js/translated/stock.js:396 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:420 +#: templates/js/translated/stock.js:421 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425 +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:441 +#: templates/js/translated/stock.js:442 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:470 +#: templates/js/translated/stock.js:471 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:516 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:526 +#: templates/js/translated/stock.js:527 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:527 +#: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:636 +#: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:637 +#: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:715 +#: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:717 +#: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:718 +#: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:804 +#: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:805 +#: templates/js/translated/stock.js:806 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:900 +#: templates/js/translated/stock.js:901 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:901 +#: templates/js/translated/stock.js:902 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:907 +#: templates/js/translated/stock.js:908 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:908 +#: templates/js/translated/stock.js:909 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:912 +#: templates/js/translated/stock.js:913 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:913 +#: templates/js/translated/stock.js:914 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:917 +#: templates/js/translated/stock.js:918 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:918 users/models.py:208 +#: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" msgstr "添加" -#: templates/js/translated/stock.js:922 templates/stock_table.html:58 +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1011 +#: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1210 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1212 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1216 +#: templates/js/translated/stock.js:1217 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1264 +#: templates/js/translated/stock.js:1293 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1321 +#: templates/js/translated/stock.js:1349 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1428 +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 msgid "In production" msgstr "正在生产" -#: templates/js/translated/stock.js:1432 +#: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1440 +#: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1570 msgid "No stock location set" msgstr "未设置仓储地点" -#: templates/js/translated/stock.js:1604 +#: templates/js/translated/stock.js:1728 msgid "Stock item is in production" msgstr "库存品正在生产" -#: templates/js/translated/stock.js:1609 +#: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1612 +#: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1740 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1624 +#: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1626 +#: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1633 +#: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1640 +#: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:1766 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1648 +#: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1698 +#: templates/js/translated/stock.js:1822 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1771 +#: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1809 +#: templates/js/translated/stock.js:1933 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878 +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1918 +#: templates/js/translated/stock.js:2042 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2069 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1947 +#: templates/js/translated/stock.js:2071 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:2146 +#: templates/js/translated/stock.js:2270 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2160 +#: templates/js/translated/stock.js:2284 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2161 +#: templates/js/translated/stock.js:2285 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2340 +#: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" msgstr "" -#: templates/js/translated/stock.js:2535 +#: templates/js/translated/stock.js:2659 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2557 +#: templates/js/translated/stock.js:2681 msgid "Details" msgstr "详情" -#: templates/js/translated/stock.js:2582 +#: templates/js/translated/stock.js:2706 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2601 +#: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2620 +#: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2638 +#: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2661 +#: templates/js/translated/stock.js:2785 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2669 +#: templates/js/translated/stock.js:2793 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2710 +#: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2711 +#: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2762 +#: templates/js/translated/stock.js:2886 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2813 +#: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" msgstr "" +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "可追溯商品" @@ -9055,12 +9187,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:407 +#: templates/js/translated/table_filters.js:402 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:442 +#: templates/js/translated/table_filters.js:437 msgid "Subscribed" msgstr "" @@ -9102,7 +9234,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:379 +#: templates/js/translated/table_filters.js:374 msgid "Active parts" msgstr "" @@ -9187,47 +9319,47 @@ msgstr "" msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "生产状态" -#: templates/js/translated/table_filters.js:303 -#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:320 -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:352 +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:336 -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:408 +#: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:407 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:413 +#: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" msgstr "商品有内部编号" -#: templates/js/translated/table_filters.js:418 +#: templates/js/translated/table_filters.js:413 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:421 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:449 msgid "Purchasable" msgstr "" @@ -9480,35 +9612,35 @@ msgstr "权限" msgid "Important dates" msgstr "重要日期" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission set" msgstr "权限设置" -#: users/models.py:203 +#: users/models.py:208 msgid "Group" msgstr "群组" -#: users/models.py:206 +#: users/models.py:211 msgid "View" msgstr "视图" -#: users/models.py:206 +#: users/models.py:211 msgid "Permission to view items" msgstr "查看项目权限" -#: users/models.py:208 +#: users/models.py:213 msgid "Permission to add items" msgstr "添加项目权限" -#: users/models.py:210 +#: users/models.py:215 msgid "Change" msgstr "更改" -#: users/models.py:210 +#: users/models.py:215 msgid "Permissions to edit items" msgstr "编辑项目权限" -#: users/models.py:212 +#: users/models.py:217 msgid "Permission to delete items" msgstr "删除项目权限" From 08a5779c35fc4acf6eae7ec3d20cd0785874b4ba Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 19:25:03 +0100 Subject: [PATCH 09/30] fix caps --- InvenTree/templates/allauth_2fa/backup_tokens.html | 2 +- InvenTree/templates/allauth_2fa/setup.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/InvenTree/templates/allauth_2fa/backup_tokens.html b/InvenTree/templates/allauth_2fa/backup_tokens.html index 2fe30e8222..2257baecb3 100644 --- a/InvenTree/templates/allauth_2fa/backup_tokens.html +++ b/InvenTree/templates/allauth_2fa/backup_tokens.html @@ -28,6 +28,6 @@
-{% trans "back to settings" %} +{% trans "Back to settings" %} {% endblock %} diff --git a/InvenTree/templates/allauth_2fa/setup.html b/InvenTree/templates/allauth_2fa/setup.html index ce795a3c98..2b74ad9c47 100644 --- a/InvenTree/templates/allauth_2fa/setup.html +++ b/InvenTree/templates/allauth_2fa/setup.html @@ -37,6 +37,6 @@ {% endblock %} From 0baffcaee55cc3e844a749af518be5f21280868f Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 21:12:20 +0100 Subject: [PATCH 10/30] fix string concat --- InvenTree/InvenTree/serializers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py index 98e03fdc0e..7f0c966914 100644 --- a/InvenTree/InvenTree/serializers.py +++ b/InvenTree/InvenTree/serializers.py @@ -620,7 +620,7 @@ class DataFileExtractSerializer(serializers.Serializer): # Check for missing required columns if required: if name not in self.columns: - raise serializers.ValidationError(_("Missing required column") + f": '{name}'") + raise serializers.ValidationError(_("Missing required column: '{name}'")) for col in self.columns: @@ -629,7 +629,7 @@ class DataFileExtractSerializer(serializers.Serializer): # Check for duplicated columns if col in cols_seen: - raise serializers.ValidationError(_("Duplicate column") + f": '{col}'") + raise serializers.ValidationError(_("Duplicate column: '{col}'")) cols_seen.add(col) From b974b5fc306f49b9089486729c9b9df4710d2ba3 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 21:47:39 +0100 Subject: [PATCH 11/30] use f-string annotation --- InvenTree/InvenTree/serializers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py index 7f0c966914..e21e2fb0fc 100644 --- a/InvenTree/InvenTree/serializers.py +++ b/InvenTree/InvenTree/serializers.py @@ -620,7 +620,7 @@ class DataFileExtractSerializer(serializers.Serializer): # Check for missing required columns if required: if name not in self.columns: - raise serializers.ValidationError(_("Missing required column: '{name}'")) + raise serializers.ValidationError(_(f"Missing required column: '{name}'")) for col in self.columns: @@ -629,7 +629,7 @@ class DataFileExtractSerializer(serializers.Serializer): # Check for duplicated columns if col in cols_seen: - raise serializers.ValidationError(_("Duplicate column: '{col}'")) + raise serializers.ValidationError(_(f"Duplicate column: '{col}'")) cols_seen.add(col) From 887e6295e2d4a4d83028db27b9e836ff85b226fb Mon Sep 17 00:00:00 2001 From: Oliver Date: Mon, 21 Feb 2022 11:26:08 +1100 Subject: [PATCH 12/30] I18n release merge (#2654) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin --- InvenTree/locale/de/LC_MESSAGES/django.po | 238 +++++++++++----------- InvenTree/locale/el/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/es/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/fr/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/he/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/id/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/it/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/ja/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/ko/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/nl/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/no/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/pl/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/pt/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/ru/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/sv/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/th/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/tr/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/vi/LC_MESSAGES/django.po | 40 ++-- InvenTree/locale/zh/LC_MESSAGES/django.po | 40 ++-- 19 files changed, 498 insertions(+), 460 deletions(-) diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 640df9a958..95f96bede6 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-19 14:45\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 23:03\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ungültige Gruppe: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "Ungültige Gruppe {group}" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Ungültige/Keine Gruppe {group}" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen" @@ -290,12 +290,14 @@ msgid "No data columns supplied" msgstr "Keine Spalten angegeben" #: InvenTree/serializers.py:623 -msgid "Missing required column" -msgstr "Erforderliche Spalte fehlt" +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "Erforderliche Spalte '{name}' fehlt" #: InvenTree/serializers.py:632 -msgid "Duplicate column" -msgstr "Doppelte Spalte" +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "Doppelte Spalte: '{col}'" #: InvenTree/settings.py:655 msgid "German" @@ -991,18 +993,18 @@ msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" #: build/serializers.py:208 msgid "Integer quantity required for trackable parts" -msgstr "" +msgstr "Ganzzahl für verfolgbare Teile erforderlich" #: build/serializers.py:211 msgid "Integer quantity required, as the bill of materials contains trackable parts" -msgstr "" +msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält" #: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 #: stock/serializers.py:314 templates/js/translated/stock.js:239 @@ -1016,15 +1018,15 @@ msgstr "Seriennummer für dieses Endprodukt eingeben" #: build/serializers.py:239 msgid "Auto Allocate Serial Numbers" -msgstr "" +msgstr "Seriennummern automatisch zuweisen" #: build/serializers.py:240 msgid "Automatically allocate required items with matching serial numbers" -msgstr "" +msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" -msgstr "" +msgstr "Folgende Seriennummern existieren bereits" #: build/serializers.py:327 build/serializers.py:392 msgid "A list of build outputs must be provided" @@ -1060,7 +1062,7 @@ msgstr "Status" #: build/serializers.py:428 msgid "Accept Unallocated" -msgstr "" +msgstr "Nicht zugewiesene akzeptieren" #: build/serializers.py:429 msgid "Accept that stock items have not been fully allocated to this build order" @@ -1072,7 +1074,7 @@ msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" #: build/serializers.py:444 msgid "Accept Incomplete" -msgstr "" +msgstr "Unvollständig Zuweisung akzeptieren" #: build/serializers.py:445 msgid "Accept that the required number of build outputs have not been completed" @@ -1088,7 +1090,7 @@ msgstr "Bauauftrag hat unvollständige Aufbauten" #: build/serializers.py:467 build/templates/build/build_base.html:95 msgid "No build outputs have been created for this build order" -msgstr "" +msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt" #: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 #: part/models.py:2988 @@ -1373,7 +1375,7 @@ msgstr "Endproduktaktionen" #: build/templates/build/detail.html:250 msgid "Complete selected build outputs" -msgstr "" +msgstr "Ausgewählte Endprodukt fertigstellen" #: build/templates/build/detail.html:251 msgid "Complete outputs" @@ -1381,11 +1383,11 @@ msgstr "Endprodukte fertigstellen" #: build/templates/build/detail.html:253 msgid "Delete selected build outputs" -msgstr "" +msgstr "Ausgewählte Endprodukte löschen" #: build/templates/build/detail.html:254 msgid "Delete outputs" -msgstr "" +msgstr "Endprodukte löschen" #: build/templates/build/detail.html:270 msgid "Completed Build Outputs" @@ -1504,7 +1506,7 @@ msgstr "{name} Datei zum Hochladen auswählen" #: common/models.py:352 msgid "Settings key (must be unique - case insensitive)" -msgstr "" +msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" #: common/models.py:354 msgid "Settings value" @@ -1979,7 +1981,7 @@ msgstr "Plugins zum Hinzufügen von URLs aktivieren" #: common/models.py:983 msgid "Enable navigation integration" -msgstr "" +msgstr "Navigations-Integration aktivieren" #: common/models.py:984 msgid "Enable plugins to integrate into navigation" @@ -1999,15 +2001,15 @@ msgstr "Terminplan-Integration aktivieren" #: common/models.py:998 msgid "Enable plugins to run scheduled tasks" -msgstr "" +msgstr "Geplante Aufgaben aktivieren" #: common/models.py:1004 msgid "Enable event integration" -msgstr "" +msgstr "Ereignis-Integration aktivieren" #: common/models.py:1005 msgid "Enable plugins to respond to internal events" -msgstr "" +msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" #: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" @@ -4395,7 +4397,7 @@ msgstr "Vererbtes einschließen" #: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" -msgstr "" +msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" #: part/serializers.py:690 msgid "Skip Invalid Rows" @@ -4411,35 +4413,35 @@ msgstr "Bestehende Stückliste löschen" #: part/serializers.py:735 msgid "Delete existing BOM items before uploading" -msgstr "" +msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" #: part/serializers.py:762 msgid "No part column specified" -msgstr "" +msgstr "Keine Bauteilspalte angegeben" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" -msgstr "" +msgstr "Mindestens eine Stückliste-Position ist erforderlich" #: part/tasks.py:58 msgid "Low stock notification" @@ -4643,7 +4645,7 @@ msgstr "Bestand aller Varianten von %(full_name)s" #: part/templates/part/detail.html:43 msgid "Part Stock Allocations" -msgstr "" +msgstr "Teil-Bestandszuordnungen" #: part/templates/part/detail.html:60 msgid "Part Test Templates" @@ -5062,7 +5064,7 @@ msgstr "Benutzt in" #: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" -msgstr "" +msgstr "Zuweisungen" #: part/templates/part/part_sidebar.html:48 msgid "Test Templates" @@ -5201,16 +5203,16 @@ msgstr "Stückliste hochladen" #: part/templates/part/upload_bom.html:19 msgid "BOM upload requirements" -msgstr "" +msgstr "Anforderungen an Stückliste-Dateien" #: part/templates/part/upload_bom.html:23 #: part/templates/part/upload_bom.html:90 msgid "Upload BOM File" -msgstr "" +msgstr "Stückliste-Datei hochgeladen" #: part/templates/part/upload_bom.html:29 msgid "Submit BOM Data" -msgstr "" +msgstr "Stückliste hochladen" #: part/templates/part/upload_bom.html:37 msgid "Requirements for BOM upload" @@ -5336,7 +5338,7 @@ msgstr "Interne Preisspanne löschen" #: plugin/integration.py:138 msgid "No author found" -msgstr "" +msgstr "Kein Autor gefunden" #: plugin/integration.py:152 msgid "No date found" @@ -5352,15 +5354,15 @@ msgstr "Plugin-Konfigurationen" #: plugin/models.py:32 msgid "Key" -msgstr "" +msgstr "Schlüssel" #: plugin/models.py:33 msgid "Key of plugin" -msgstr "" +msgstr "Schlüssel des Plugins" #: plugin/models.py:41 msgid "PluginName of the plugin" -msgstr "" +msgstr "Name des Plugins" #: plugin/models.py:47 msgid "Is the plugin active" @@ -5408,7 +5410,7 @@ msgstr "Quell-URL" #: plugin/serializers.py:51 msgid "Source for the package - this can be a custom registry or a VCS path" -msgstr "" +msgstr "Quelle für das Paket - dies kann eine eigene Registry oder ein VCS-Pfad sein" #: plugin/serializers.py:56 msgid "Package Name" @@ -5416,7 +5418,7 @@ msgstr "Paket-Name" #: plugin/serializers.py:57 msgid "Name for the Plugin Package - can also contain a version indicator" -msgstr "" +msgstr "Name für das Plugin-Paket - kann auch einen Versionstext enthalten" #: plugin/serializers.py:60 msgid "Confirm plugin installation" @@ -5424,15 +5426,15 @@ msgstr "Plugin-Installation bestätigen" #: plugin/serializers.py:61 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." -msgstr "" +msgstr "Dies wird dieses Plugin sofort in die aktuelle Instanz installieren. Die Instanz wird sofort in Wartung gehen." #: plugin/serializers.py:76 msgid "Installation not confirmed" -msgstr "" +msgstr "Installation nicht bestätigt" #: plugin/serializers.py:78 msgid "Either packagename of URL must be provided" -msgstr "" +msgstr "Entweder Paketname oder URL muss angegeben werden" #: report/api.py:234 report/api.py:278 #, python-brace-format @@ -5587,11 +5589,11 @@ msgstr "Menge ist erforderlich" #: stock/api.py:508 msgid "Valid part must be supplied" -msgstr "" +msgstr "Gültiges Teil muss angegeben werden" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" -msgstr "" +msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" #: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 #: stock/templates/stock/item_base.html:195 @@ -5790,23 +5792,23 @@ msgstr "Artikel wurde einem Kundenauftrag zugewiesen" #: stock/models.py:1195 msgid "Stock item is installed in another item" -msgstr "" +msgstr "Lagerartikel ist in anderem Element verbaut" #: stock/models.py:1198 msgid "Stock item contains other items" -msgstr "" +msgstr "Lagerartikel enthält andere Artikel" #: stock/models.py:1201 msgid "Stock item has been assigned to a customer" -msgstr "" +msgstr "Artikel wurde einem Kunden zugewiesen" #: stock/models.py:1204 msgid "Stock item is currently in production" -msgstr "" +msgstr "Lagerartikel wird aktuell produziert" #: stock/models.py:1207 msgid "Serialized stock cannot be merged" -msgstr "" +msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" #: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" @@ -5814,15 +5816,15 @@ msgstr "Artikel duplizeren" #: stock/models.py:1218 msgid "Stock items must refer to the same part" -msgstr "" +msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" #: stock/models.py:1222 msgid "Stock items must refer to the same supplier part" -msgstr "" +msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" #: stock/models.py:1226 msgid "Stock status codes must match" -msgstr "" +msgstr "Status-Codes müssen zusammenpassen" #: stock/models.py:1397 msgid "StockItem cannot be moved as it is not in stock" @@ -5899,19 +5901,19 @@ msgstr "Seriennummern existieren bereits" #: stock/serializers.py:405 msgid "Select stock item to install" -msgstr "" +msgstr "Lagerartikel für Installation auswählen" #: stock/serializers.py:421 msgid "Stock item is unavailable" -msgstr "" +msgstr "Lagerartikel ist nicht verfügbar" #: stock/serializers.py:428 msgid "Selected part is not in the Bill of Materials" -msgstr "" +msgstr "Ausgewähltes Teil ist nicht in der Stückliste" #: stock/serializers.py:646 msgid "Part must be salable" -msgstr "" +msgstr "Teil muss verkaufbar sein" #: stock/serializers.py:650 msgid "Item is allocated to a sales order" @@ -5923,7 +5925,7 @@ msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" #: stock/serializers.py:684 msgid "Customer to assign stock items" -msgstr "" +msgstr "Kunde zum Zuweisen von Lagerartikel" #: stock/serializers.py:690 msgid "Selected company is not a customer" @@ -5931,7 +5933,7 @@ msgstr "Ausgewählte Firma ist kein Kunde" #: stock/serializers.py:698 msgid "Stock assignment notes" -msgstr "" +msgstr "Notizen zur Lagerzuordnung" #: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" @@ -5939,27 +5941,27 @@ msgstr "Eine Liste der Lagerbestände muss angegeben werden" #: stock/serializers.py:796 msgid "Stock merging notes" -msgstr "" +msgstr "Notizen zur Lagerartikelzusammenführung" #: stock/serializers.py:801 msgid "Allow mismatched suppliers" -msgstr "" +msgstr "Unterschiedliche Lieferanten erlauben" #: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" -msgstr "" +msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben" #: stock/serializers.py:807 msgid "Allow mismatched status" -msgstr "" +msgstr "Unterschiedliche Status erlauben" #: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" -msgstr "" +msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben" #: stock/serializers.py:818 msgid "At least two stock items must be provided" -msgstr "" +msgstr "Mindestens zwei Lagerartikel müssen angegeben werden" #: stock/serializers.py:900 msgid "StockItem primary key value" @@ -5979,7 +5981,7 @@ msgstr "neuer Eintrag" #: stock/templates/stock/item.html:48 msgid "Stock Item Allocations" -msgstr "" +msgstr "Lagerartikel Zuweisungen" #: stock/templates/stock/item.html:64 msgid "Child Stock Items" @@ -6169,11 +6171,11 @@ msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden" #: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" -msgstr "" +msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen" #: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" -msgstr "" +msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen" #: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." @@ -6571,7 +6573,7 @@ msgstr "URLs" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format msgid "The Base-URL for this plugin is %(base)s." -msgstr "" +msgstr "Die Basis-URL für dieses Plugin ist %(base)s." #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" @@ -7035,7 +7037,7 @@ msgstr "Hilf bei der Übersetzung!" #: templates/InvenTree/settings/user_display.html:102 #, python-format msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "" +msgstr "Die Übersetzung von InvenTree wird von Nutzern via Crowdin betrieben. Wir ermutigen zur und freuen uns über jede Mithilfe." #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" @@ -7122,12 +7124,12 @@ msgstr "E-Mail-Adresse bestätigen" #: templates/account/email_confirm.html:16 #, python-format msgid "Please confirm that %(email)s is an email address for user %(user_display)s." -msgstr "" +msgstr "Bitte bestätigen Sie, dass %(email)s eine E-Mail-Adresse für den Benutzer %(user_display)s ist." #: templates/account/email_confirm.html:27 #, python-format msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." -msgstr "" +msgstr "Dieser E-Mail Bestätigungslink ist abgelaufen oder ungültig. Bitte fordern Sie eine neue E-Mail Bestätigung an." #: templates/account/login.html:6 templates/account/login.html:16 #: templates/account/login.html:39 @@ -7139,13 +7141,13 @@ msgstr "Einloggen" msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" -msgstr "" +msgstr "Bitte melden Sie sich mit einem Ihrer bestehenden Drittkonten an oder registrieren Sie sich für ein Konto und melden Sie sich unten an:" #: templates/account/login.html:25 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." -msgstr "" +msgstr "Wenn Sie noch kein Konto erstellt haben, dann bitteregistrieren Sie sich zuerst." #: templates/account/login.html:42 msgid "Forgot Password?" @@ -7200,7 +7202,7 @@ msgstr "Ungültiger Schlüssel" #: templates/account/password_reset_from_key.html:11 #, python-format msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "" +msgstr "Der Link zum Zurücksetzen des Kennworts war ungültig, da er bereits verwendet wurde. Bitte fordern Sie eine neue Passwortwiederherstellung an." #: templates/account/password_reset_from_key.html:18 msgid "Change password" @@ -7217,7 +7219,7 @@ msgstr "Anmelden" #: templates/account/signup.html:13 #, python-format msgid "Already have an account? Then please sign in." -msgstr "" +msgstr "Haben Sie bereits ein Konto? Dann melden Sie sich bitte an." #: templates/account/signup.html:27 msgid "Or use a SSO-provider for signup" @@ -7237,28 +7239,28 @@ msgstr "Authentifizieren" #: templates/allauth_2fa/backup_tokens.html:6 msgid "Two-Factor Authentication Backup Tokens" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung Backup-Codes" #: templates/allauth_2fa/backup_tokens.html:17 msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." -msgstr "" +msgstr "Backup-Token wurden generiert, werden aber aus Sicherheitsgründen hier nicht angezeigt. Drücken Sie den Knopf unten um neue zu generieren." #: templates/allauth_2fa/backup_tokens.html:20 msgid "No tokens. Press the button below to generate some." -msgstr "" +msgstr "Keine Token. Drücken Sie den Knopf um neue anzulegen." #: templates/allauth_2fa/backup_tokens.html:27 msgid "Generate backup tokens" -msgstr "" +msgstr "Backup-Codes generieren" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" -msgstr "" +msgid "Back to settings" +msgstr "Zurück zu den Einstellungen" #: templates/allauth_2fa/remove.html:6 msgid "Disable Two-Factor Authentication" -msgstr "" +msgstr "Zwei-Faktor-Authentifizierung deaktivieren" #: templates/allauth_2fa/remove.html:9 msgid "Are you sure?" @@ -7266,7 +7268,7 @@ msgstr "Bist du sicher?" #: templates/allauth_2fa/remove.html:14 msgid "Disable Two-Factor" -msgstr "" +msgstr "Zwei-Faktor deaktivieren" #: templates/allauth_2fa/setup.html:6 msgid "Setup Two-Factor Authentication" @@ -7290,7 +7292,7 @@ msgstr "Geben Sie das von der App generierte Token ein:" #: templates/allauth_2fa/setup.html:35 msgid "Verify" -msgstr "" +msgstr "Überprüfen" #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" @@ -7426,7 +7428,7 @@ msgstr "Fehler 405: Methode nicht erlaubt" #: templates/js/translated/api.js:213 msgid "HTTP method not allowed at URL" -msgstr "" +msgstr "HTTP-Methode für diese URL nicht erlaubt" #: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" @@ -7573,11 +7575,11 @@ msgstr "Barcode entspricht keinem Lagerort" #: templates/js/translated/bom.js:75 msgid "Display row data" -msgstr "" +msgstr "Zeilendaten anzeigen" #: templates/js/translated/bom.js:131 msgid "Row Data" -msgstr "" +msgstr "Zeilendaten" #: templates/js/translated/bom.js:249 msgid "Download BOM Template" @@ -7615,7 +7617,7 @@ msgstr "Parameter-Daten einschließen" #: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" -msgstr "" +msgstr "Teil-Parameter in Stückliste-Export einschließen" #: templates/js/translated/bom.js:313 msgid "Include Stock Data" @@ -7647,7 +7649,7 @@ msgstr "Ersatzteil entfernen" #: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" -msgstr "" +msgstr "Wählen Sie ein neues Ersatzteil aus und fügen Sie sie mit den folgenden Eingaben hinzu" #: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" @@ -7739,7 +7741,7 @@ msgstr "Bauauftrag erstellen" #: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" -msgstr "" +msgstr "Bauauftrag ist bereit abgeschlossen zu werden" #: templates/js/translated/build.js:145 msgid "Build Order is incomplete" @@ -7765,7 +7767,7 @@ msgstr "Die Stückliste enthält verfolgbare Teile" #: templates/js/translated/build.js:226 msgid "Build outputs must be generated individually" -msgstr "" +msgstr "Endprodukte müssen individuell angelegt werden" #: templates/js/translated/build.js:234 msgid "Trackable parts can have serial numbers specified" @@ -7821,7 +7823,7 @@ msgstr "Endprodukte fertigstellen" #: templates/js/translated/build.js:576 msgid "Delete Build Outputs" -msgstr "" +msgstr "Endprodukte entfernen" #: templates/js/translated/build.js:665 msgid "No build order allocations found" @@ -8107,15 +8109,15 @@ msgstr "Eingabe leeren" #: templates/js/translated/forms.js:2479 msgid "File Column" -msgstr "" +msgstr "Dateispalte" #: templates/js/translated/forms.js:2479 msgid "Field Name" -msgstr "" +msgstr "Feldname" #: templates/js/translated/forms.js:2491 msgid "Select Columns" -msgstr "" +msgstr "Spalten auswählen" #: templates/js/translated/helpers.js:19 msgid "YES" @@ -8599,7 +8601,7 @@ msgstr "Sie haben Benachrichtigungen für dieses Teil abgemeldet" #: templates/js/translated/part.js:444 msgid "Validating the BOM will mark each line item as valid" -msgstr "" +msgstr "Die Stückliste zu validieren markiert jede Zeile als gültig" #: templates/js/translated/part.js:454 msgid "Validate Bill of Materials" @@ -8863,11 +8865,11 @@ msgstr "Lagerartikel in untergeordneten Lagerorten einschließen" #: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" -msgstr "" +msgstr "Bestand Zuweisung bestätigen" #: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" -msgstr "" +msgstr "Einem Kunden zuordnen" #: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" @@ -8879,11 +8881,11 @@ msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werde #: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" -msgstr "" +msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht" #: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" -msgstr "" +msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht" #: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" @@ -8955,7 +8957,7 @@ msgstr "KEIN ERGEBNIS" #: templates/js/translated/stock.js:1264 msgid "Pass test" -msgstr "" +msgstr "Test bestanden" #: templates/js/translated/stock.js:1267 msgid "Add test result" @@ -9088,7 +9090,7 @@ msgstr "Status Code muss ausgewählt werden" #: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" -msgstr "" +msgstr "Zugewiesene Menge" #: templates/js/translated/stock.js:2659 msgid "Invalid date" @@ -9140,7 +9142,7 @@ msgstr "Lagerartikel entfernen" #: templates/js/translated/stock.js:2973 msgid "Install another stock item into this item" -msgstr "" +msgstr "Einen weiteren Lagerartikel in dieses Teil installiert" #: templates/js/translated/stock.js:2974 msgid "Stock items can only be installed if they meet the following criteria" @@ -9148,11 +9150,11 @@ msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erf #: templates/js/translated/stock.js:2976 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" -msgstr "" +msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" #: templates/js/translated/stock.js:2977 msgid "The Stock Item is currently available in stock" -msgstr "" +msgstr "Dieser Lagerartikel ist aktuell vorhanden" #: templates/js/translated/stock.js:2978 msgid "The Stock Item is serialized and does not belong to another item" @@ -9160,7 +9162,7 @@ msgstr "Der Lagerartikel ist serialisiert und gehört nicht zu einem anderen Tei #: templates/js/translated/stock.js:2991 msgid "Select part to install" -msgstr "" +msgstr "Teil zur Installation auswählen" #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 51ac59a646..77cb4dffeb 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index d7ac9a9b72..3bc254a1fa 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:03\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Cadena de número de serie vacía" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Grupo inválido: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "No se encontraron números de serie" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 45d149fe65..d504f75c52 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Chaîne de numéro de série vide" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Groupe invalide : {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "Groupe invalide {group}" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Invalide/aucun groupe {group}" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Aucun numéro de série trouvé" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "Entrer la quantité désiré pour la fabrication" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index d0119cf91c..1e499733e1 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "קבוצה שגויה: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "קבוצה שגויה {group}" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "קבוצה שגויה / לא נמצאה {group}" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "מספרים סידוריים לא נמצאו" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "כמות המספרים הסידוריים ({s}) מוכרים להיות תואמים לכמות ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 146938fa46..341568fbcc 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index ec2e7c82fd..537c6a0b92 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:03\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Numero seriale vuoto" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Gruppo non valido: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Nessun numero di serie trovato" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "Inserisci la quantità per l'output di compilazione" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "La quantità è richiesta" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 6c39cc70ff..9950bc4aea 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:03\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "シリアル番号は空です" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "無効なグループ: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "シリアル番号が見つかりません" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 6a68799a65..1cb8e0cac0 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "수량 값은 0보다 커야 합니다" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index 64190d6ca7..84b0bc7bdd 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Leeg serienummer" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ongeldige groep: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Geen serienummers gevonden" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Aantal unieke serienummer ({s}) moet overeenkomen met de hoeveelheid ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "Voer hoeveelheid in voor build-output" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 590cd9fe2c..4dfa473710 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Tom serienummerstreng" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ugyldig gruppe: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "Ugyldig gruppe {group}" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Ugyldig/ingen gruppe {group}" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Ingen serienummer funnet" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Antall unike serienummer ({s}) må samsvare mengde ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "Angi antall for build utgang" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 74d0d6091d..6f9b3ea0bf 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:03\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Pusty ciąg numeru seryjnego" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Nieprawidłowa grupa: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "Nieprawidłowa grupa {group}" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Nieprawidłowa/Brak grupy {group}" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Nie znaleziono numerów seryjnych" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index 8aebfec50b..1e5441e8c4 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 581aaef8d6..14ce2c217d 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:03\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Пустая строка серийного номера" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Некорректный идентификатор группы {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "Недопустимая группа {group}" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "Недопустимая/несуществующая группа {group}" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Серийных номеров не найдено" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "Введите количество для вывода сборки" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 41855e602e..8aae1b4156 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Tom serienummersträng" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ogiltig grupp: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Inga serienummer hittades" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index f96d272fac..2cfd65c5c6 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:03\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index 437de0dd78..0fbee1f4c1 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:03\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "Boş seri numarası dizesi" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "Geçersiz grup: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "Seri numarası bulunamadı" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "Yapım işi çıktısı için miktarını girin" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index d364825e86..b37175d84b 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 8378fb6ddb..d9e4448811 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 20:36+0000\n" -"PO-Revision-Date: 2022-02-18 20:38\n" +"POT-Creation-Date: 2022-02-20 22:01+0000\n" +"PO-Revision-Date: 2022-02-20 22:02\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -95,26 +95,26 @@ msgid "Empty serial number string" msgstr "空序列号字符串" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 -#: InvenTree/helpers.py:502 +#: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" msgstr "无效的群组: {g}" -#: InvenTree/helpers.py:512 +#: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" msgstr "" -#: InvenTree/helpers.py:518 +#: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" msgstr "" -#: InvenTree/helpers.py:524 +#: InvenTree/helpers.py:522 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:528 +#: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" @@ -290,11 +290,13 @@ msgid "No data columns supplied" msgstr "" #: InvenTree/serializers.py:623 -msgid "Missing required column" +#, python-brace-format +msgid "Missing required column: '{name}'" msgstr "" #: InvenTree/serializers.py:632 -msgid "Duplicate column" +#, python-brace-format +msgid "Duplicate column: '{col}'" msgstr "" #: InvenTree/settings.py:655 @@ -991,7 +993,7 @@ msgid "Enter quantity for build output" msgstr "输入生产产出数量" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 -#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1022,7 +1024,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:274 stock/api.py:551 +#: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" msgstr "" @@ -4417,27 +4419,27 @@ msgstr "" msgid "No part column specified" msgstr "" -#: part/serializers.py:806 +#: part/serializers.py:805 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:809 +#: part/serializers.py:808 msgid "No matching part found" msgstr "" -#: part/serializers.py:812 +#: part/serializers.py:811 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:820 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:829 +#: part/serializers.py:828 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:848 +#: part/serializers.py:847 msgid "At least one BOM item is required" msgstr "" @@ -5587,7 +5589,7 @@ msgstr "" msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -7251,7 +7253,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 -msgid "back to settings" +msgid "Back to settings" msgstr "" #: templates/allauth_2fa/remove.html:6 From 91560dcc6d65c072e29bedbbbf0871c55f8635e7 Mon Sep 17 00:00:00 2001 From: Oliver Date: Mon, 21 Feb 2022 13:24:04 +1100 Subject: [PATCH 13/30] Fix build-args in workflows (cherry picked from commit a4aa4201f02b613ab23fdd3fe45db2c129a2baca) --- .github/workflows/docker_stable.yaml | 2 +- .github/workflows/docker_tag.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker_stable.yaml b/.github/workflows/docker_stable.yaml index 65c31dd9dc..e892b24d13 100644 --- a/.github/workflows/docker_stable.yaml +++ b/.github/workflows/docker_stable.yaml @@ -36,7 +36,7 @@ jobs: push: true target: production build-args: - branch: stable + branch=stable tags: inventree/inventree:stable - name: Image Digest run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/.github/workflows/docker_tag.yaml b/.github/workflows/docker_tag.yaml index 5de27f48be..a9f1c646fc 100644 --- a/.github/workflows/docker_tag.yaml +++ b/.github/workflows/docker_tag.yaml @@ -34,5 +34,5 @@ jobs: push: true target: production build-args: - tag: ${{ github.event.release.tag_name }} + tag=${{ github.event.release.tag_name }} tags: inventree/inventree:${{ github.event.release.tag_name }} From 4007b17dcc45fb191a9d4ab4ecaf40daebaf3f06 Mon Sep 17 00:00:00 2001 From: Oliver Date: Mon, 21 Feb 2022 20:52:37 +1100 Subject: [PATCH 14/30] Update version.py Increment minor version number after stable release --- InvenTree/InvenTree/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py index 09de857b68..b4314f6738 100644 --- a/InvenTree/InvenTree/version.py +++ b/InvenTree/InvenTree/version.py @@ -9,7 +9,7 @@ import re import common.models # InvenTree software version -INVENTREE_SW_VERSION = "0.6.0 dev" +INVENTREE_SW_VERSION = "0.7.0 dev" # InvenTree API version INVENTREE_API_VERSION = 26 From f4779a23737e818488c5c319bb5de18692b4dec6 Mon Sep 17 00:00:00 2001 From: Oliver Date: Mon, 21 Feb 2022 22:31:10 +1100 Subject: [PATCH 15/30] Update LICENSE Bump copyright year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 8ec64a2798..a07b8befba 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017-2021 InvenTree +Copyright (c) 2017-2022 InvenTree Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From da4c7f0ba16f98e094fde02c23485a6ecf68301c Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 22 Feb 2022 11:40:28 +1100 Subject: [PATCH 16/30] Adds support for Hungarian language --- InvenTree/InvenTree/settings.py | 1 + InvenTree/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 380 bytes InvenTree/locale/hu/LC_MESSAGES/django.po | 9641 +++++++++++++++++++++ 3 files changed, 9642 insertions(+) create mode 100644 InvenTree/locale/hu/LC_MESSAGES/django.mo create mode 100644 InvenTree/locale/hu/LC_MESSAGES/django.po diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 4fb3dc61bb..c45be06f4b 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -659,6 +659,7 @@ LANGUAGES = [ ('es-mx', _('Spanish (Mexican)')), ('fr', _('French')), ('he', _('Hebrew')), + ('hu', _('Hungarian')), ('it', _('Italian')), ('ja', _('Japanese')), ('ko', _('Korean')), diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.mo b/InvenTree/locale/hu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..71cbdf3e9d8d54be31066ec4ad8628bc2c1f2845 GIT binary patch literal 380 zcmYL@K~KUk7=|%=+R?Lz&%}d9i{c3jGZa>EvE7z2Nc2{r&Y96JZ6W$Y{CoZuJ5A(G zp7i_Dx9RhJeDu}vIq;l#&OC>nD^HugXY4QU{MmN?lNtRkR}RH%w3NnHT4Bh@vF%H^(V-=Ii1iQ$Qo9Pt!I1Rhe%oml#`f^NEGFCKEL->Rc=KoQ6a?!10%_7(V7ey8`V`;n{war z20Z3;uifk31QV^CRQ|iq#``$=;jWunRB8aLH({)F;i8zL{=V00y-I_qTIqGAN(}v% i$^}`yHKImSZ8jEzYJOK6-VWez49^vuhS0kh1f3tbb!oc* literal 0 HcmV?d00001 diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po new file mode 100644 index 0000000000..cbba57513b --- /dev/null +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -0,0 +1,9641 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#: templates/js/translated/order.js:1973 +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-02-22 11:37+1100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InvenTree/api.py:55 +msgid "API endpoint not found" +msgstr "" + +#: InvenTree/api.py:101 +msgid "No action specified" +msgstr "" + +#: InvenTree/api.py:116 +msgid "No matching action found" +msgstr "" + +#: InvenTree/fields.py:100 +msgid "Enter date" +msgstr "" + +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:596 +msgid "Confirm" +msgstr "" + +#: InvenTree/forms.py:142 +msgid "Confirm delete" +msgstr "" + +#: InvenTree/forms.py:143 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:174 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:175 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:182 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:183 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:215 +msgid "Select Category" +msgstr "" + +#: InvenTree/forms.py:236 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:240 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:260 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/helpers.py:439 +#, python-brace-format +msgid "Duplicate serial: {n}" +msgstr "" + +#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 +#: stock/views.py:1082 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/helpers.py:449 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 +#: InvenTree/helpers.py:501 +#, python-brace-format +msgid "Invalid group: {g}" +msgstr "" + +#: InvenTree/helpers.py:510 +#, python-brace-format +msgid "Invalid group {group}" +msgstr "" + +#: InvenTree/helpers.py:516 +#, python-brace-format +msgid "Invalid/no group {group}" +msgstr "" + +#: InvenTree/helpers.py:522 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:526 +#, python-brace-format +msgid "Number of unique serial number ({s}) must match quantity ({q})" +msgstr "" + +#: InvenTree/models.py:176 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:177 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:188 stock/models.py:1995 +#: templates/js/translated/attachment.js:119 +msgid "Attachment" +msgstr "" + +#: InvenTree/models.py:189 +msgid "Select file to attach" +msgstr "" + +#: InvenTree/models.py:195 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:860 +#: report/templates/report/inventree_build_order_base.html:165 +#: templates/js/translated/company.js:540 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 +msgid "Link" +msgstr "" + +#: InvenTree/models.py:196 build/models.py:332 part/models.py:861 +#: stock/models.py:529 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:199 templates/js/translated/attachment.js:163 +msgid "Comment" +msgstr "" + +#: InvenTree/models.py:199 +msgid "File comment" +msgstr "" + +#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 +#: common/models.py:1236 common/models.py:1464 common/models.py:1465 +#: part/models.py:2301 part/models.py:2321 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2816 +msgid "User" +msgstr "" + +#: InvenTree/models.py:209 +msgid "upload date" +msgstr "" + +#: InvenTree/models.py:232 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:255 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:265 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:268 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:275 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:282 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:317 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 +#: company/models.py:415 label/models.py:112 part/models.py:804 +#: part/models.py:2485 plugin/models.py:40 report/models.py:177 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/plugin.html:48 +#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin_settings.html:23 +#: templates/InvenTree/settings/settings.html:319 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:567 +#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 +#: templates/js/translated/stock.js:2609 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:340 build/models.py:209 +#: build/templates/build/detail.html:25 company/models.py:354 +#: company/models.py:570 company/templates/company/company_base.html:68 +#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/supplier_part.html:73 label/models.py:119 +#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:163 +#: part/templates/part/set_category.html:14 report/models.py:190 +#: report/models.py:553 report/models.py:592 +#: report/templates/report/inventree_build_order_base.html:118 +#: stock/templates/stock/location.html:93 +#: templates/InvenTree/settings/plugin_settings.html:33 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765 +#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345 +#: templates/js/translated/company.js:551 +#: templates/js/translated/company.js:840 templates/js/translated/order.js:836 +#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 +#: templates/js/translated/part.js:626 templates/js/translated/part.js:999 +#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254 +#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719 +#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 +#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:341 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:349 +msgid "parent" +msgstr "" + +#: InvenTree/serializers.py:65 part/models.py:2803 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:299 +msgid "Filename" +msgstr "" + +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "" + +#: InvenTree/serializers.py:632 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "" + +#: InvenTree/settings.py:655 +msgid "German" +msgstr "" + +#: InvenTree/settings.py:656 +msgid "Greek" +msgstr "" + +#: InvenTree/settings.py:657 +msgid "English" +msgstr "" + +#: InvenTree/settings.py:658 +msgid "Spanish" +msgstr "" + +#: InvenTree/settings.py:659 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:660 +msgid "French" +msgstr "" + +#: InvenTree/settings.py:661 +msgid "Hebrew" +msgstr "" + +#: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:664 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:665 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:666 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:667 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:668 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:669 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:670 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:671 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:672 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:673 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:674 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:675 +msgid "Chinese" +msgstr "" + +#: InvenTree/status.py:94 +msgid "Background worker check failed" +msgstr "" + +#: InvenTree/status.py:98 +msgid "Email backend not configured" +msgstr "" + +#: InvenTree/status.py:101 +msgid "InvenTree system health checks failed" +msgstr "" + +#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 +msgid "Pending" +msgstr "" + +#: InvenTree/status_codes.py:102 +msgid "Placed" +msgstr "" + +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 +#: order/templates/order/order_base.html:128 +#: order/templates/order/sales_order_base.html:132 +msgid "Complete" +msgstr "" + +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:318 +msgid "Cancelled" +msgstr "" + +#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:187 +msgid "Lost" +msgstr "" + +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 +#: InvenTree/status_codes.py:189 +msgid "Returned" +msgstr "" + +#: InvenTree/status_codes.py:143 order/models.py:961 +#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:183 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:184 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:185 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:186 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:188 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py: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/translated/stock.js:2196 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:299 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:302 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:317 +msgid "Production" +msgstr "" + +#: InvenTree/validators.py:25 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:53 +msgid "Invalid character in part name" +msgstr "" + +#: InvenTree/validators.py:66 +#, python-brace-format +msgid "IPN must match regex pattern {pat}" +msgstr "" + +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "" + +#: InvenTree/validators.py:116 +#, python-brace-format +msgid "Illegal character in name ({x})" +msgstr "" + +#: InvenTree/validators.py:137 InvenTree/validators.py:153 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:155 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:538 +msgid "Delete Item" +msgstr "" + +#: InvenTree/views.py:587 +msgid "Check box to confirm item deletion" +msgstr "" + +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:632 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:883 templates/navbar.html:126 +msgid "System Information" +msgstr "" + +#: barcodes/api.py:54 barcodes/api.py:152 +msgid "Must provide barcode_data parameter" +msgstr "" + +#: barcodes/api.py:128 +msgid "No match found for barcode data" +msgstr "" + +#: barcodes/api.py:130 +msgid "Match found for barcode data" +msgstr "" + +#: barcodes/api.py:155 +msgid "Must provide stockitem parameter" +msgstr "" + +#: barcodes/api.py:162 +msgid "No matching stock item found" +msgstr "" + +#: barcodes/api.py:193 +msgid "Barcode already matches Stock Item" +msgstr "" + +#: barcodes/api.py:197 +msgid "Barcode already matches Stock Location" +msgstr "" + +#: barcodes/api.py:201 +msgid "Barcode already matches Part" +msgstr "" + +#: barcodes/api.py:207 barcodes/api.py:219 +msgid "Barcode hash already matches Stock Item" +msgstr "" + +#: barcodes/api.py:225 +msgid "Barcode associated with Stock Item" +msgstr "" + +#: build/forms.py:20 +msgid "Confirm cancel" +msgstr "" + +#: build/forms.py:20 build/views.py:62 +msgid "Confirm build cancellation" +msgstr "" + +#: build/models.py:135 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:139 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 +msgid "Build Order" +msgstr "" + +#: build/models.py:140 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221 +#: templates/InvenTree/search.html:139 +#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +msgid "Build Orders" +msgstr "" + +#: build/models.py:200 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:201 order/models.py:213 order/models.py:541 +#: order/models.py:812 part/models.py:2714 +#: part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:92 +#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 +#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 +msgid "Reference" +msgstr "" + +#: build/models.py:212 +msgid "Brief description of the build" +msgstr "" + +#: build/models.py:221 build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:88 +msgid "Parent Build" +msgstr "" + +#: build/models.py:222 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:227 build/templates/build/build_base.html:77 +#: build/templates/build/detail.html:30 company/models.py:705 +#: order/models.py:876 order/models.py:950 +#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359 +#: part/models.py:2247 part/models.py:2263 part/models.py:2282 +#: part/models.py:2299 part/models.py:2401 part/models.py:2523 +#: part/models.py:2613 part/models.py:2689 part/models.py:2996 +#: part/serializers.py:666 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:80 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:16 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902 +#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492 +#: templates/js/translated/company.js:749 templates/js/translated/order.js:84 +#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984 +#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232 +#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728 +#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 +msgid "Part" +msgstr "" + +#: build/models.py:235 +msgid "Select part to build" +msgstr "" + +#: build/models.py:240 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:244 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:249 templates/js/translated/build.js:1643 +#: templates/js/translated/order.js:1564 +msgid "Source Location" +msgstr "" + +#: build/models.py:253 +msgid "Select location to take stock from for this build (leave blank to take from any stock location)" +msgstr "" + +#: build/models.py:258 +msgid "Destination Location" +msgstr "" + +#: build/models.py:262 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:266 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:269 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:273 +msgid "Completed items" +msgstr "" + +#: build/models.py:275 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:279 part/templates/part/part_base.html:234 +msgid "Build Status" +msgstr "" + +#: build/models.py:283 +msgid "Build status code" +msgstr "" + +#: build/models.py:287 build/serializers.py:218 stock/models.py:533 +msgid "Batch Code" +msgstr "" + +#: build/models.py:291 build/serializers.py:219 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:294 order/models.py:129 part/models.py:999 +#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 +msgid "Creation Date" +msgstr "" + +#: build/models.py:298 order/models.py:563 +msgid "Target completion date" +msgstr "" + +#: build/models.py:299 +msgid "Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:302 order/models.py:255 +#: templates/js/translated/build.js:1996 +msgid "Completion Date" +msgstr "" + +#: build/models.py:308 +msgid "completed by" +msgstr "" + +#: build/models.py:316 templates/js/translated/build.js:1967 +msgid "Issued by" +msgstr "" + +#: build/models.py:317 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:325 build/templates/build/build_base.html:190 +#: build/templates/build/detail.html:116 order/models.py:143 +#: order/templates/order/order_base.html:170 +#: order/templates/order/sales_order_base.html:182 part/models.py:1003 +#: report/templates/report/inventree_build_order_base.html:159 +#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 +msgid "Responsible" +msgstr "" + +#: build/models.py:326 +msgid "User responsible for this build order" +msgstr "" + +#: build/models.py:331 build/templates/build/detail.html:102 +#: company/templates/company/manufacturer_part.html:102 +#: company/templates/company/supplier_part.html:126 +#: part/templates/part/part_base.html:354 stock/models.py:527 +#: stock/templates/stock/item_base.html:375 +msgid "External Link" +msgstr "" + +#: build/models.py:336 build/serializers.py:380 +#: build/templates/build/sidebar.html:21 company/models.py:142 +#: company/models.py:577 company/templates/company/sidebar.html:25 +#: order/models.py:147 order/models.py:814 order/models.py:1071 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/so_sidebar.html:17 part/models.py:988 +#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599 +#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 +#: stock/templates/stock/stock_sidebar.html:25 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936 +#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149 +#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 +#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 +msgid "Notes" +msgstr "" + +#: build/models.py:337 +msgid "Extra build notes" +msgstr "" + +#: build/models.py:756 +msgid "No build output specified" +msgstr "" + +#: build/models.py:759 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:762 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1154 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1163 +#, python-brace-format +msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1173 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1179 order/models.py:1189 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1185 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1242 +msgid "Selected stock item not found in BOM" +msgstr "" + +#: build/models.py:1302 stock/templates/stock/item_base.html:347 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 +#: templates/navbar.html:35 +msgid "Build" +msgstr "" + +#: build/models.py:1303 +msgid "Build to allocate parts" +msgstr "" + +#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 +#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 +#: stock/templates/stock/item_base.html:23 +#: stock/templates/stock/item_base.html:369 +#: templates/js/translated/build.js:687 templates/js/translated/build.js:692 +#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041 +#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 +#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 +#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 +#: templates/js/translated/stock.js:2752 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1320 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1332 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1275 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:805 order/models.py:1229 order/serializers.py:816 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2705 +#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:272 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780 +#: templates/js/translated/build.js:375 templates/js/translated/build.js:523 +#: templates/js/translated/build.js:714 templates/js/translated/build.js:911 +#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297 +#: templates/js/translated/build.js:1658 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056 +#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 +#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 +#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906 +#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985 +#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392 +#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 +#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 +msgid "Quantity" +msgstr "" + +#: build/models.py:1333 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1341 +msgid "Install into" +msgstr "" + +#: build/models.py:1342 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:138 build/serializers.py:599 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:150 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:154 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:158 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:164 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:201 build/serializers.py:590 order/models.py:280 +#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 +#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 +#: stock/serializers.py:314 templates/js/translated/stock.js:239 +#: templates/js/translated/stock.js:393 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:239 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:240 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:274 stock/api.py:549 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:327 build/serializers.py:392 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699 +#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508 +#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 +#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 +#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 +#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 +msgid "Location" +msgstr "" + +#: build/serializers.py:370 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:376 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:63 order/models.py:557 +#: order/serializers.py:247 stock/templates/stock/item_base.html:189 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954 +#: templates/js/translated/order.js:591 templates/js/translated/order.js:840 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 +#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 +msgid "Status" +msgstr "" + +#: build/serializers.py:428 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:429 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:439 templates/js/translated/build.js:150 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:444 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:445 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:455 templates/js/translated/build.js:154 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:464 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:467 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 +#: part/models.py:2988 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:505 +msgid "Build output" +msgstr "" + +#: build/serializers.py:514 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:561 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:576 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:632 order/serializers.py:747 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:638 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:645 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:673 order/serializers.py:990 +msgid "Allocation items must be provided" +msgstr "" + +#: build/tasks.py:98 +msgid "Stock required for build order" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: order/templates/order/order_base.html:28 +#: order/templates/order/sales_order_base.html:38 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:50 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:54 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:220 build/views.py:53 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:59 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:64 +#: build/templates/build/build_base.html:65 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:87 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:101 +#, python-format +msgid "This Build Order is allocated to Sales Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:108 +#, python-format +msgid "This Build Order is a child of Build Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:115 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:120 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:125 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:130 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:132 +#: order/templates/order/order_base.html:156 +#: order/templates/order/sales_order_base.html:163 +#: report/templates/report/inventree_build_order_base.html:126 +#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 +#: templates/js/translated/order.js:1276 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:156 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 +#: order/templates/order/order_base.html:98 +#: order/templates/order/sales_order_base.html:93 +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:335 +#: templates/js/translated/table_filters.js:356 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:163 +#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: order/templates/order/sales_order_base.html:170 +#: templates/js/translated/build.js:1940 +#: templates/js/translated/table_filters.js:365 +msgid "Completed" +msgstr "" + +#: build/templates/build/build_base.html:176 +#: build/templates/build/detail.html:95 order/models.py:947 +#: order/models.py:1043 order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:309 +#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:183 +#: build/templates/build/detail.html:109 +#: report/templates/report/inventree_build_order_base.html:153 +msgid "Issued By" +msgstr "" + +#: build/templates/build/build_base.html:228 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/build_base.html:229 +msgid "Build Order cannot be completed as incomplete build outputs remain" +msgstr "" + +#: build/templates/build/cancel.html:5 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: build/templates/build/detail.html:16 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:39 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:44 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 +#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:57 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:74 templates/js/translated/build.js:929 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:81 +#: stock/templates/stock/item_base.html:333 +#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926 +#: templates/js/translated/table_filters.js:151 +#: templates/js/translated/table_filters.js:238 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:127 +#: order/templates/order/order_base.html:143 +#: order/templates/order/sales_order_base.html:157 +#: templates/js/translated/build.js:1962 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:138 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:147 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:173 +msgid "Allocate Stock to Build" +msgstr "" + +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 +msgid "Unallocate stock" +msgstr "" + +#: build/templates/build/detail.html:178 +msgid "Unallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:180 +msgid "Allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:184 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:185 +#: company/templates/company/detail.html:38 +#: company/templates/company/detail.html:85 order/views.py:463 +#: part/templates/part/category.html:177 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:197 +msgid "Untracked stock has been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:201 +msgid "Untracked stock has not been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:208 +msgid "Allocate selected items" +msgstr "" + +#: build/templates/build/detail.html:218 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "" + +#: build/templates/build/detail.html:227 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:231 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:232 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:246 +msgid "Output Actions" +msgstr "" + +#: build/templates/build/detail.html:250 +msgid "Complete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:251 +msgid "Complete outputs" +msgstr "" + +#: build/templates/build/detail.html:253 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:254 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:270 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:60 +#: order/templates/order/sales_order_detail.html:107 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216 +#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:298 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:302 build/templates/build/detail.html:478 +#: company/templates/company/detail.html:188 +#: company/templates/company/detail.html:215 +#: order/templates/order/purchase_order_detail.html:80 +#: order/templates/order/purchase_order_detail.html:108 +#: order/templates/order/sales_order_detail.html:127 +#: order/templates/order/sales_order_detail.html:186 +#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 +#: stock/templates/stock/item.html:230 +msgid "Edit Notes" +msgstr "" + +#: build/templates/build/detail.html:502 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:503 +msgid "All untracked stock items have been allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:323 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/index.html:37 build/templates/build/index.html:38 +msgid "Print Build Orders" +msgstr "" + +#: build/templates/build/index.html:44 +#: order/templates/order/purchase_orders.html:34 +#: order/templates/order/sales_orders.html:37 +msgid "Display calendar view" +msgstr "" + +#: build/templates/build/index.html:47 +#: order/templates/order/purchase_orders.html:37 +#: order/templates/order/sales_orders.html:40 +msgid "Display list view" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:12 +msgid "Pending Items" +msgstr "" + +#: build/templates/build/sidebar.html:15 +msgid "Completed Items" +msgstr "" + +#: build/views.py:73 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:114 +msgid "Delete Build Order" +msgstr "" + +#: common/files.py:65 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:67 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:76 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:34 +msgid "File" +msgstr "" + +#: common/forms.py:35 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:50 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:51 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:352 +msgid "Settings key (must be unique - case insensitive)" +msgstr "" + +#: common/models.py:354 +msgid "Settings value" +msgstr "" + +#: common/models.py:388 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:408 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:419 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:442 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:561 +msgid "No group" +msgstr "" + +#: common/models.py:603 +msgid "Restart required" +msgstr "" + +#: common/models.py:604 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:611 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:613 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:617 +msgid "Use instance name" +msgstr "" + +#: common/models.py:618 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:624 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "" + +#: common/models.py:625 +msgid "Internal company name" +msgstr "" + +#: common/models.py:630 +msgid "Base URL" +msgstr "" + +#: common/models.py:631 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:637 +msgid "Default Currency" +msgstr "" + +#: common/models.py:638 +msgid "Default currency" +msgstr "" + +#: common/models.py:644 +msgid "Download from URL" +msgstr "" + +#: common/models.py:645 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:652 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:658 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:659 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:663 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:664 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:670 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:671 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:677 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:678 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:684 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:685 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:691 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:692 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:698 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:699 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:705 part/models.py:2525 report/models.py:183 +#: templates/js/translated/table_filters.js:38 +#: templates/js/translated/table_filters.js:417 +msgid "Template" +msgstr "" + +#: common/models.py:706 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 +#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:429 +msgid "Assembly" +msgstr "" + +#: common/models.py:713 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:719 part/models.py:957 +#: templates/js/translated/table_filters.js:433 +msgid "Component" +msgstr "" + +#: common/models.py:720 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:726 part/models.py:968 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:727 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:733 part/models.py:973 +#: templates/js/translated/table_filters.js:441 +msgid "Salable" +msgstr "" + +#: common/models.py:734 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:740 part/models.py:963 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:100 +#: templates/js/translated/table_filters.js:445 +msgid "Trackable" +msgstr "" + +#: common/models.py:741 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:747 part/models.py:983 +#: part/templates/part/part_base.html:147 +#: templates/js/translated/table_filters.js:42 +msgid "Virtual" +msgstr "" + +#: common/models.py:748 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:754 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:755 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:761 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:762 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:773 +msgid "Show Price in BOM" +msgstr "" + +#: common/models.py:774 +msgid "Include pricing information in BOM tables" +msgstr "" + +#: common/models.py:785 +msgid "Show Price History" +msgstr "" + +#: common/models.py:786 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:792 +msgid "Show related parts" +msgstr "" + +#: common/models.py:793 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:799 +msgid "Create initial stock" +msgstr "" + +#: common/models.py:800 +msgid "Create initial stock on part creation" +msgstr "" + +#: common/models.py:806 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:807 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:813 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:814 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:820 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:821 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:828 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:829 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:835 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:836 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:842 +msgid "Page Size" +msgstr "" + +#: common/models.py:843 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:853 +msgid "Test Reports" +msgstr "" + +#: common/models.py:854 +msgid "Enable generation of test reports" +msgstr "" + +#: common/models.py:860 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:861 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:867 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:868 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:874 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:875 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:877 +msgid "days" +msgstr "" + +#: common/models.py:882 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:883 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:889 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:890 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:896 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:897 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:902 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:903 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:907 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:908 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:913 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:914 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:920 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:921 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:926 +msgid "Enable registration" +msgstr "" + +#: common/models.py:927 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:932 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:933 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:938 +msgid "Email required" +msgstr "" + +#: common/models.py:939 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:944 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:945 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:950 +msgid "Mail twice" +msgstr "" + +#: common/models.py:951 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:956 +msgid "Password twice" +msgstr "" + +#: common/models.py:957 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:962 +msgid "Group on signup" +msgstr "" + +#: common/models.py:963 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:968 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:969 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:976 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:977 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:983 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:984 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:990 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:991 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:997 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:998 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:1004 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:1005 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:1020 common/models.py:1228 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:1051 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:1052 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:1057 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:1058 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:1063 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:1064 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:1069 +msgid "Recent Part Count" +msgstr "" + +#: common/models.py:1070 +msgid "Number of recent parts to display on index page" +msgstr "" + +#: common/models.py:1076 +msgid "Show unvalidated BOMs" +msgstr "" + +#: common/models.py:1077 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:1082 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:1083 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:1088 +msgid "Recent Stock Count" +msgstr "" + +#: common/models.py:1089 +msgid "Number of recent stock items to display on index page" +msgstr "" + +#: common/models.py:1094 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1095 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:1100 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1101 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:1106 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1107 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:1112 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1113 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:1118 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1119 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:1124 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:1125 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:1130 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:1131 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:1136 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:1137 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:1142 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:1143 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:1148 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:1149 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:1154 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:1155 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:1161 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1162 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1168 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1169 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1175 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1176 +msgid "Number of results to show in search preview window" +msgstr "" + +#: common/models.py:1182 +msgid "Search Show Stock" +msgstr "" + +#: common/models.py:1183 +msgid "Display stock levels in search preview window" +msgstr "" + +#: common/models.py:1189 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1190 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1196 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1197 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1203 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1204 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1210 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1211 +msgid "InvenTree navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1276 company/forms.py:43 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:1283 company/serializers.py:264 +#: company/templates/company/supplier_part.html:256 +#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 +msgid "Price" +msgstr "" + +#: common/models.py:1284 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:1441 common/models.py:1580 +msgid "Endpoint" +msgstr "" + +#: common/models.py:1442 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:1451 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:1456 part/models.py:978 plugin/models.py:46 +#: templates/js/translated/table_filters.js:34 +#: templates/js/translated/table_filters.js:96 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:412 +msgid "Active" +msgstr "" + +#: common/models.py:1457 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:1471 +msgid "Token" +msgstr "" + +#: common/models.py:1472 +msgid "Token for access" +msgstr "" + +#: common/models.py:1479 +msgid "Secret" +msgstr "" + +#: common/models.py:1480 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:1547 +msgid "Message ID" +msgstr "" + +#: common/models.py:1548 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:1556 +msgid "Host" +msgstr "" + +#: common/models.py:1557 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:1564 +msgid "Header" +msgstr "" + +#: common/models.py:1565 +msgid "Header of this message" +msgstr "" + +#: common/models.py:1571 +msgid "Body" +msgstr "" + +#: common/models.py:1572 +msgid "Body of this message" +msgstr "" + +#: common/models.py:1581 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:1586 +msgid "Worked on" +msgstr "" + +#: common/models.py:1587 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/views.py:93 order/templates/order/purchase_order_detail.html:24 +#: order/views.py:243 part/views.py:210 +#: templates/patterns/wizard/upload.html:35 +msgid "Upload File" +msgstr "" + +#: common/views.py:94 order/views.py:244 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/views.py:211 templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:95 +msgid "Match Items" +msgstr "" + +#: common/views.py:440 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:495 +msgid "Parts imported" +msgstr "" + +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 +#: part/templates/part/import_wizard/match_references.html:19 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:33 +msgid "Previous Step" +msgstr "" + +#: company/forms.py:24 part/forms.py:46 +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: company/forms.py:25 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/models.py:105 +msgid "Company description" +msgstr "" + +#: company/models.py:106 +msgid "Description of the company" +msgstr "" + +#: company/models.py:112 company/templates/company/company_base.html:97 +#: templates/InvenTree/settings/plugin_settings.html:55 +#: templates/js/translated/company.js:349 +msgid "Website" +msgstr "" + +#: company/models.py:113 +msgid "Company website URL" +msgstr "" + +#: company/models.py:117 company/templates/company/company_base.html:115 +msgid "Address" +msgstr "" + +#: company/models.py:118 +msgid "Company address" +msgstr "" + +#: company/models.py:121 +msgid "Phone number" +msgstr "" + +#: company/models.py:122 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:125 company/templates/company/company_base.html:129 +#: templates/InvenTree/settings/user.html:48 +msgid "Email" +msgstr "" + +#: company/models.py:125 +msgid "Contact email address" +msgstr "" + +#: company/models.py:128 company/templates/company/company_base.html:136 +msgid "Contact" +msgstr "" + +#: company/models.py:129 +msgid "Point of contact" +msgstr "" + +#: company/models.py:131 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:139 part/models.py:870 +msgid "Image" +msgstr "" + +#: company/models.py:144 +msgid "is customer" +msgstr "" + +#: company/models.py:144 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:146 +msgid "is supplier" +msgstr "" + +#: company/models.py:146 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:148 +msgid "is manufacturer" +msgstr "" + +#: company/models.py:148 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:152 company/serializers.py:270 +#: company/templates/company/company_base.html:103 stock/serializers.py:179 +msgid "Currency" +msgstr "" + +#: company/models.py:155 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:320 company/models.py:535 stock/models.py:471 +#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 +msgid "Base Part" +msgstr "" + +#: company/models.py:324 company/models.py:539 +msgid "Select part" +msgstr "" + +#: company/models.py:335 company/templates/company/company_base.html:73 +#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/supplier_part.html:97 +#: stock/templates/stock/item_base.html:382 +#: templates/js/translated/company.js:333 +#: templates/js/translated/company.js:517 +#: templates/js/translated/company.js:800 templates/js/translated/part.js:234 +#: templates/js/translated/table_filters.js:384 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:336 templates/js/translated/part.js:235 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/templates/company/supplier_part.html:105 +#: templates/js/translated/company.js:533 +#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038 +#: templates/js/translated/part.js:245 templates/js/translated/part.js:895 +msgid "MPN" +msgstr "" + +#: company/models.py:343 templates/js/translated/part.js:246 +msgid "Manufacturer Part Number" +msgstr "" + +#: company/models.py:349 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:355 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:409 company/models.py:558 +#: company/templates/company/manufacturer_part.html:6 +#: company/templates/company/manufacturer_part.html:23 +#: stock/templates/stock/item_base.html:392 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:416 +msgid "Parameter name" +msgstr "" + +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1988 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 +msgid "Value" +msgstr "" + +#: company/models.py:423 +msgid "Parameter value" +msgstr "" + +#: company/models.py:429 part/models.py:945 part/models.py:2493 +#: part/templates/part/part_base.html:288 +#: templates/InvenTree/settings/settings.html:324 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:721 +msgid "Units" +msgstr "" + +#: company/models.py:430 +msgid "Parameter units" +msgstr "" + +#: company/models.py:502 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:545 company/templates/company/company_base.html:78 +#: company/templates/company/supplier_part.html:87 order/models.py:227 +#: order/templates/order/order_base.html:112 +#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 +#: part/bom.py:265 stock/templates/stock/item_base.html:399 +#: templates/js/translated/company.js:337 +#: templates/js/translated/company.js:774 templates/js/translated/order.js:823 +#: templates/js/translated/part.js:215 templates/js/translated/part.js:863 +#: templates/js/translated/table_filters.js:388 +msgid "Supplier" +msgstr "" + +#: company/models.py:546 templates/js/translated/part.js:216 +msgid "Select supplier" +msgstr "" + +#: company/models.py:551 company/templates/company/supplier_part.html:91 +#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025 +#: templates/js/translated/part.js:226 templates/js/translated/part.js:881 +msgid "SKU" +msgstr "" + +#: company/models.py:552 templates/js/translated/part.js:227 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:559 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:565 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:571 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:576 company/templates/company/supplier_part.html:119 +#: part/models.py:2717 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 +msgid "Note" +msgstr "" + +#: company/models.py:580 part/models.py:1817 +msgid "base cost" +msgstr "" + +#: company/models.py:580 part/models.py:1817 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:582 company/templates/company/supplier_part.html:112 +#: stock/models.py:495 stock/templates/stock/item_base.html:340 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 +msgid "Packaging" +msgstr "" + +#: company/models.py:582 +msgid "Part packaging" +msgstr "" + +#: company/models.py:584 part/models.py:1819 +msgid "multiple" +msgstr "" + +#: company/models.py:584 +msgid "Order multiple" +msgstr "" + +#: company/serializers.py:70 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:71 +msgid "Currency Code" +msgstr "" + +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 +msgid "Company" +msgstr "" + +#: company/templates/company/company_base.html:22 +#: templates/js/translated/order.js:279 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:26 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:31 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:32 +#: templates/js/translated/company.js:265 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:36 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:37 +#: company/templates/company/company_base.html:159 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:56 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:83 order/models.py:552 +#: order/templates/order/sales_order_base.html:115 stock/models.py:514 +#: stock/models.py:515 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:292 +#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 +#: templates/js/translated/stock.js:2734 +#: templates/js/translated/table_filters.js:392 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:108 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:122 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:205 +#: part/templates/part/part_base.html:471 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/detail.html:15 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:118 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:19 +#: order/templates/order/order_wizard/select_parts.html:44 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:20 +#: company/templates/company/manufacturer_part.html:118 +#: part/templates/part/detail.html:356 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:79 +#: company/templates/company/manufacturer_part.html:127 +#: company/templates/company/manufacturer_part.html:156 +#: part/templates/part/category.html:171 part/templates/part/detail.html:365 +#: part/templates/part/detail.html:394 +msgid "Options" +msgstr "" + +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 +#: part/templates/part/category.html:177 +msgid "Order parts" +msgstr "" + +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 +msgid "Delete parts" +msgstr "" + +#: company/templates/company/detail.html:43 +#: company/templates/company/detail.html:90 +msgid "Delete Parts" +msgstr "" + +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:66 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:67 part/templates/part/detail.html:384 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:107 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:117 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 +#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: users/models.py:45 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:121 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:122 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:143 +#: company/templates/company/sidebar.html:20 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 +#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:148 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:168 +#: templates/js/translated/build.js:1281 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:184 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:384 +#: company/templates/company/manufacturer_part.html:215 +#: part/templates/part/detail.html:438 +msgid "Delete Supplier Parts?" +msgstr "" + +#: company/templates/company/detail.html:385 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:439 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: company/templates/company/index.html:8 +msgid "Supplier List" +msgstr "" + +#: company/templates/company/manufacturer_part.html:14 company/views.py:55 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 +#: templates/navbar.html:46 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/supplier_part.html:34 +#: company/templates/company/supplier_part.html:159 +#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:40 +#: templates/js/translated/company.js:565 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:44 +#: templates/js/translated/company.js:566 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/supplier_part.html:63 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/supplier_part.html:15 company/views.py:49 +#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: part/templates/part/detail.html:367 +msgid "Delete supplier parts" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:254 +#: part/templates/part/detail.html:367 part/templates/part/detail.html:396 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 +#: users/models.py:217 +msgid "Delete" +msgstr "" + +#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:17 +#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:147 +#: part/templates/part/detail.html:195 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part.html:66 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:158 +msgid "Delete parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:191 +#: part/templates/part/detail.html:895 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:239 +msgid "Selected parameters will be deleted" +msgstr "" + +#: company/templates/company/manufacturer_part.html:251 +msgid "Delete Parameters" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 stock/models.py:479 +#: stock/templates/stock/item_base.html:404 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 +msgid "Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:38 +#: templates/js/translated/company.js:863 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:42 +#: templates/js/translated/company.js:864 +msgid "Delete supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:138 +#: company/templates/company/supplier_part_navbar.html:12 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:141 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:142 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:369 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:155 +#: company/templates/company/supplier_part_navbar.html:19 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:160 +#: part/templates/part/detail.html:89 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:179 +#: part/templates/part/prices.html:7 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:184 +#: company/templates/company/supplier_part.html:290 +#: part/templates/part/prices.html:271 part/views.py:1319 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +msgid "No price break information found" +msgstr "" + +#: company/templates/company/supplier_part.html:224 part/views.py:1381 +msgid "Delete Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:238 part/views.py:1367 +msgid "Edit Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:263 +msgid "Edit price break" +msgstr "" + +#: company/templates/company/supplier_part.html:264 +msgid "Delete price break" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:15 +#: part/templates/part/part_sidebar.html:15 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:150 +#: templates/InvenTree/settings/sidebar.html:41 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495 +#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125 +#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 +#: templates/js/translated/stock.js:1712 templates/navbar.html:28 +msgid "Stock" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:22 +msgid "Orders" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:26 +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:29 +#: part/templates/part/part_sidebar.html:30 +msgid "Pricing" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 +#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +msgid "Stock Items" +msgstr "" + +#: company/views.py:50 +msgid "New Supplier" +msgstr "" + +#: company/views.py:56 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:61 templates/InvenTree/search.html:208 +#: templates/navbar.html:57 +msgid "Customers" +msgstr "" + +#: company/views.py:62 +msgid "New Customer" +msgstr "" + +#: company/views.py:69 +msgid "Companies" +msgstr "" + +#: company/views.py:70 +msgid "New Company" +msgstr "" + +#: company/views.py:129 part/views.py:591 +msgid "Download Image" +msgstr "" + +#: company/views.py:158 part/views.py:623 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:165 part/views.py:630 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + +#: company/views.py:174 part/views.py:639 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: label/api.py:57 report/api.py:203 +msgid "No valid objects provided to template" +msgstr "" + +#: label/models.py:113 +msgid "Label name" +msgstr "" + +#: label/models.py:120 +msgid "Label description" +msgstr "" + +#: label/models.py:127 +msgid "Label" +msgstr "" + +#: label/models.py:128 +msgid "Label template file" +msgstr "" + +#: label/models.py:134 report/models.py:294 +msgid "Enabled" +msgstr "" + +#: label/models.py:135 +msgid "Label template is enabled" +msgstr "" + +#: label/models.py:140 +msgid "Width [mm]" +msgstr "" + +#: label/models.py:141 +msgid "Label width, specified in mm" +msgstr "" + +#: label/models.py:147 +msgid "Height [mm]" +msgstr "" + +#: label/models.py:148 +msgid "Label height, specified in mm" +msgstr "" + +#: label/models.py:154 report/models.py:287 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:155 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:258 +msgid "Query filters (comma-separated list of key=value pairs)," +msgstr "" + +#: label/models.py:259 label/models.py:319 label/models.py:366 +#: report/models.py:318 report/models.py:455 report/models.py:493 +msgid "Filters" +msgstr "" + +#: label/models.py:318 +msgid "Query filters (comma-separated list of key=value pairs" +msgstr "" + +#: label/models.py:365 +msgid "Part query filters (comma-separated value of key=value pairs)" +msgstr "" + +#: order/forms.py:24 order/templates/order/order_base.html:52 +msgid "Place order" +msgstr "" + +#: order/forms.py:35 order/templates/order/order_base.html:60 +msgid "Mark order as complete" +msgstr "" + +#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 +#: order/templates/order/sales_order_base.html:60 +msgid "Cancel order" +msgstr "" + +#: order/models.py:125 +msgid "Order description" +msgstr "" + +#: order/models.py:127 +msgid "Link to external page" +msgstr "" + +#: order/models.py:135 +msgid "Created By" +msgstr "" + +#: order/models.py:142 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:147 +msgid "Order notes" +msgstr "" + +#: order/models.py:214 order/models.py:542 +msgid "Order reference" +msgstr "" + +#: order/models.py:219 order/models.py:557 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:228 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:231 order/templates/order/order_base.html:118 +#: templates/js/translated/order.js:832 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:231 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:238 +msgid "received by" +msgstr "" + +#: order/models.py:243 +msgid "Issue Date" +msgstr "" + +#: order/models.py:244 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:249 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:250 +msgid "Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:256 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:285 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:420 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:553 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:559 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:559 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:564 +msgid "Target date for order completion. Order will be overdue after this date." +msgstr "" + +#: order/models.py:567 order/models.py:1048 +#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:574 +msgid "shipped by" +msgstr "" + +#: order/models.py:640 +msgid "Order cannot be completed as no parts have been assigned" +msgstr "" + +#: order/models.py:644 +msgid "Only a pending order can be marked as complete" +msgstr "" + +#: order/models.py:647 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:650 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:806 +msgid "Item quantity" +msgstr "" + +#: order/models.py:812 +msgid "Line item reference" +msgstr "" + +#: order/models.py:814 +msgid "Line item notes" +msgstr "" + +#: order/models.py:842 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:855 order/models.py:946 order/models.py:1042 +#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 +msgid "Order" +msgstr "" + +#: order/models.py:856 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_po_report.html:77 +#: stock/templates/stock/item_base.html:354 +#: templates/js/translated/order.js:801 templates/js/translated/part.js:838 +#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 +msgid "Purchase Order" +msgstr "" + +#: order/models.py:877 +msgid "Supplier part" +msgstr "" + +#: order/models.py:884 order/templates/order/order_base.html:163 +#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 +#: templates/js/translated/part.js:910 templates/js/translated/part.js:937 +#: templates/js/translated/table_filters.js:312 +msgid "Received" +msgstr "" + +#: order/models.py:885 +msgid "Number of items received" +msgstr "" + +#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:361 +#: templates/js/translated/stock.js:1911 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:893 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:901 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:956 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +msgid "Sale Price" +msgstr "" + +#: order/models.py:957 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:962 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1049 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1056 +msgid "Checked By" +msgstr "" + +#: order/models.py:1057 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1065 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1072 +msgid "Shipment notes" +msgstr "" + +#: order/models.py:1079 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1080 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1090 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1093 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1171 order/models.py:1173 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:1177 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:1179 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:1182 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:1186 +msgid "StockItem is over-allocated" +msgstr "" + +#: order/models.py:1192 order/serializers.py:740 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:1195 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:1196 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:1204 +msgid "Line" +msgstr "" + +#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959 +#: templates/js/translated/model_renderers.js:285 +msgid "Shipment" +msgstr "" + +#: order/models.py:1213 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:1225 +msgid "Item" +msgstr "" + +#: order/models.py:1226 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:1229 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/serializers.py:173 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:211 order/serializers.py:796 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:217 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:227 order/serializers.py:295 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:251 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:252 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:269 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:307 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:324 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:335 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:587 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:655 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:705 order/serializers.py:808 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:727 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:821 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:845 order/serializers.py:970 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:848 order/serializers.py:973 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:900 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:910 +msgid "The following serial numbers are already allocated" +msgstr "" + +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 +msgid "Are you sure you want to delete this attachment?" +msgstr "" + +#: order/templates/order/order_base.html:33 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:35 +#: order/templates/order/sales_order_base.html:45 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:41 +#: order/templates/order/sales_order_base.html:54 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:45 +#: order/templates/order/sales_order_base.html:58 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:56 +msgid "Receive items" +msgstr "" + +#: order/templates/order/order_base.html:58 +#: order/templates/order/purchase_order_detail.html:31 +msgid "Receive Items" +msgstr "" + +#: order/templates/order/order_base.html:62 +#: order/templates/order/sales_order_base.html:67 order/views.py:181 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/sales_order_base.html:79 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/sales_order_base.html:84 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:94 +#: order/templates/order/sales_order_base.html:89 +#: templates/js/translated/stock.js:2451 +msgid "Order Status" +msgstr "" + +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:128 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:130 +#: order/templates/order/sales_order_base.html:134 +#: order/templates/order/sales_order_base.html:144 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:149 +#: report/templates/report/inventree_build_order_base.html:122 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:219 +msgid "Edit Purchase Order" +msgstr "" + +#: order/templates/order/order_cancel.html:8 +msgid "Cancelling this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_complete.html:7 +msgid "Mark this order as complete?" +msgstr "" + +#: order/templates/order/order_complete.html:10 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: order/templates/order/order_complete.html:11 +msgid "Completing this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_issue.html:8 +msgid "After placing this purchase order, line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 +#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 +#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 +#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:13 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:15 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:11 +msgid "Step 1 of 2 - Select Part Suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:16 +msgid "Select suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:20 +msgid "No purchaseable parts selected" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:33 +msgid "Select Supplier" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 +#, python-format +msgid "Select a supplier for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:77 +#: part/templates/part/set_category.html:32 +msgid "Remove part" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:8 +msgid "Step 2 of 2 - Select Purchase Orders" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:12 +msgid "Select existing purchase orders, or create new orders." +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:31 +#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286 +#: templates/js/translated/order.js:1416 +msgid "Items" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:32 +msgid "Select Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:45 +#, python-format +msgid "Create new purchase order for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:68 +#, python-format +msgid "Select a purchase order for %(name)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_po_report.html:85 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:18 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:27 +#: order/templates/order/purchase_order_detail.html:181 +#: order/templates/order/sales_order_detail.html:23 +#: order/templates/order/sales_order_detail.html:244 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:30 +msgid "Receive selected items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:50 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:76 +#: order/templates/order/sales_order_detail.html:123 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:33 +msgid "Print Order Reports" +msgstr "" + +#: order/templates/order/sales_order_base.html:43 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:47 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/sales_order_base.html:66 +#: order/templates/order/sales_order_base.html:229 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:102 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:122 +#: templates/js/translated/order.js:1253 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/sales_order_base.html:140 +#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:215 +msgid "Edit Sales Order" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:8 +#: stock/templates/stock/stockitem_convert.html:13 +msgid "Warning" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:9 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/sales_order_detail.html:18 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/so_sidebar.html:8 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:48 +#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:57 +msgid "New Shipment" +msgstr "" + +#: order/views.py:99 +msgid "Cancel Order" +msgstr "" + +#: order/views.py:108 order/views.py:134 +msgid "Confirm order cancellation" +msgstr "" + +#: order/views.py:111 order/views.py:137 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/views.py:125 +msgid "Cancel sales order" +msgstr "" + +#: order/views.py:151 +msgid "Issue Order" +msgstr "" + +#: order/views.py:160 +msgid "Confirm order placement" +msgstr "" + +#: order/views.py:170 +msgid "Purchase order issued" +msgstr "" + +#: order/views.py:197 +msgid "Confirm order completion" +msgstr "" + +#: order/views.py:208 +msgid "Purchase order completed" +msgstr "" + +#: order/views.py:245 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:489 +msgid "Update prices" +msgstr "" + +#: order/views.py:747 +#, python-brace-format +msgid "Ordered {n} parts" +msgstr "" + +#: order/views.py:858 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:864 +msgid "Price not found" +msgstr "" + +#: order/views.py:867 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:872 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/api.py:499 +msgid "Valid" +msgstr "" + +#: part/api.py:500 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:505 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:847 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:851 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:866 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920 +msgid "This field is required" +msgstr "" + +#: part/bom.py:125 part/models.py:83 part/models.py:879 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 +msgid "Default Location" +msgstr "" + +#: part/bom.py:126 templates/email/low_stock_notification.html:17 +msgid "Total Stock" +msgstr "" + +#: part/bom.py:127 part/templates/part/part_base.html:185 +msgid "Available Stock" +msgstr "" + +#: part/bom.py:128 part/templates/part/part_base.html:203 +#: templates/js/translated/part.js:1301 +msgid "On Order" +msgstr "" + +#: part/forms.py:84 +msgid "Select part category" +msgstr "" + +#: part/forms.py:121 +msgid "Add parameter template to same level categories" +msgstr "" + +#: part/forms.py:125 +msgid "Add parameter template to all categories" +msgstr "" + +#: part/forms.py:145 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:84 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:87 +msgid "Default keywords" +msgstr "" + +#: part/models.py:87 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:98 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:96 +#: users/models.py:40 +msgid "Part Categories" +msgstr "" + +#: part/models.py:360 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/settings/sidebar.html:37 +#: templates/js/translated/part.js:1663 templates/navbar.html:21 +#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +msgid "Parts" +msgstr "" + +#: part/models.py:452 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:532 part/models.py:544 +#, python-brace-format +msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" +msgstr "" + +#: part/models.py:674 +msgid "Next available serial numbers are" +msgstr "" + +#: part/models.py:678 +msgid "Next available serial number is" +msgstr "" + +#: part/models.py:683 +msgid "Most recent serial number is" +msgstr "" + +#: part/models.py:778 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:803 part/models.py:2622 +msgid "Part name" +msgstr "" + +#: part/models.py:810 +msgid "Is Template" +msgstr "" + +#: part/models.py:811 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:821 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:822 +msgid "Variant Of" +msgstr "" + +#: part/models.py:828 +msgid "Part description" +msgstr "" + +#: part/models.py:833 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:302 +msgid "Keywords" +msgstr "" + +#: part/models.py:834 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:841 part/models.py:2319 part/models.py:2568 +#: part/templates/part/part_base.html:265 +#: part/templates/part/set_category.html:15 +#: templates/InvenTree/settings/settings.html:223 +#: templates/js/translated/part.js:1268 +msgid "Category" +msgstr "" + +#: part/models.py:842 +msgid "Part category" +msgstr "" + +#: part/models.py:847 part/templates/part/part_base.html:274 +#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 +#: templates/js/translated/stock.js:1684 +msgid "IPN" +msgstr "" + +#: part/models.py:848 +msgid "Internal Part Number" +msgstr "" + +#: part/models.py:854 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:855 part/templates/part/part_base.html:281 +#: report/models.py:196 templates/js/translated/part.js:622 +msgid "Revision" +msgstr "" + +#: part/models.py:877 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:924 part/templates/part/part_base.html:347 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:925 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:932 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:933 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:938 part/templates/part/part_base.html:196 +msgid "Minimum Stock" +msgstr "" + +#: part/models.py:939 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:946 +msgid "Stock keeping units for this part" +msgstr "" + +#: part/models.py:952 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:958 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:964 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:969 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:974 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:979 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:984 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:989 +msgid "Part notes - supports Markdown formatting" +msgstr "" + +#: part/models.py:992 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:992 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:995 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:997 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1001 +msgid "Creation User" +msgstr "" + +#: part/models.py:1819 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:2369 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2386 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2406 templates/js/translated/part.js:1714 +#: templates/js/translated/stock.js:1312 +msgid "Test Name" +msgstr "" + +#: part/models.py:2407 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:2412 +msgid "Test Description" +msgstr "" + +#: part/models.py:2413 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:2418 templates/js/translated/part.js:1723 +#: templates/js/translated/table_filters.js:276 +msgid "Required" +msgstr "" + +#: part/models.py:2419 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:2424 templates/js/translated/part.js:1731 +msgid "Requires Value" +msgstr "" + +#: part/models.py:2425 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:2430 templates/js/translated/part.js:1738 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:2431 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:2442 +#, python-brace-format +msgid "Illegal character in template name ({c})" +msgstr "" + +#: part/models.py:2478 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:2486 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:2493 +msgid "Parameter Units" +msgstr "" + +#: part/models.py:2523 +msgid "Parent Part" +msgstr "" + +#: part/models.py:2525 part/models.py:2574 part/models.py:2575 +#: templates/InvenTree/settings/settings.html:218 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:2527 +msgid "Data" +msgstr "" + +#: part/models.py:2527 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:2579 templates/InvenTree/settings/settings.html:227 +msgid "Default Value" +msgstr "" + +#: part/models.py:2580 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:2614 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2617 templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: part/models.py:2618 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:2621 +msgid "Part Name" +msgstr "" + +#: part/models.py:2625 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2626 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:2629 +msgid "Level" +msgstr "" + +#: part/models.py:2630 +msgid "BOM level" +msgstr "" + +#: part/models.py:2690 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2698 +msgid "Sub part" +msgstr "" + +#: part/models.py:2699 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:2705 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:2707 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 +#: templates/js/translated/table_filters.js:92 +msgid "Optional" +msgstr "" + +#: part/models.py:2707 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:2710 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:2711 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:2714 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:2717 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:2719 +msgid "Checksum" +msgstr "" + +#: part/models.py:2719 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:2723 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:882 +#: templates/js/translated/table_filters.js:68 +#: templates/js/translated/table_filters.js:88 +msgid "Inherited" +msgstr "" + +#: part/models.py:2724 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:2729 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:874 +msgid "Allow Variants" +msgstr "" + +#: part/models.py:2730 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:2815 stock/models.py:357 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:2824 part/models.py:2826 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:2955 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:2977 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:2989 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:2997 +msgid "Substitute part" +msgstr "" + +#: part/models.py:3008 +msgid "Part 1" +msgstr "" + +#: part/models.py:3012 +msgid "Part 2" +msgstr "" + +#: part/models.py:3012 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:3044 +msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" +msgstr "" + +#: part/serializers.py:667 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:678 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:679 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:684 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:685 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:690 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:691 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:734 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:735 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:762 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:805 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:808 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:811 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:820 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:828 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:847 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:58 +msgid "Low stock notification" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +#, python-format +msgid "The BOM for %(part)s has changed, and must be validated.
" +msgstr "" + +#: part/templates/part/bom.html:17 +#, python-format +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgstr "" + +#: part/templates/part/bom.html:21 +#, python-format +msgid "The BOM for %(part)s has not been validated." +msgstr "" + +#: part/templates/part/bom.html:30 part/templates/part/detail.html:273 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/bom.html:34 +msgid "Delete Items" +msgstr "" + +#: part/templates/part/category.html:28 part/templates/part/category.html:32 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:36 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:42 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:47 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:48 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:53 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:61 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "New Category" +msgstr "" + +#: part/templates/part/category.html:80 part/templates/part/category.html:93 +msgid "Category Path" +msgstr "" + +#: part/templates/part/category.html:94 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:114 part/templates/part/category.html:205 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/templates/part/category.html:119 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:156 +msgid "Export Part Data" +msgstr "" + +#: part/templates/part/category.html:157 part/templates/part/category.html:181 +msgid "Export" +msgstr "" + +#: part/templates/part/category.html:160 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:161 templates/js/translated/bom.js:365 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:175 +msgid "Set category" +msgstr "" + +#: part/templates/part/category.html:175 +msgid "Set Category" +msgstr "" + +#: part/templates/part/category.html:179 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:181 +msgid "Export Data" +msgstr "" + +#: part/templates/part/category.html:195 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:288 +msgid "Create Part Category" +msgstr "" + +#: part/templates/part/category.html:315 +msgid "Create Part" +msgstr "" + +#: part/templates/part/category_delete.html:5 +msgid "Are you sure you want to delete category" +msgstr "" + +#: part/templates/part/category_delete.html:8 +#, python-format +msgid "This category contains %(count)s child categories" +msgstr "" + +#: part/templates/part/category_delete.html:9 +msgid "If this category is deleted, these child categories will be moved to the" +msgstr "" + +#: part/templates/part/category_delete.html:11 +msgid "category" +msgstr "" + +#: part/templates/part/category_delete.html:13 +msgid "top level Parts category" +msgstr "" + +#: part/templates/part/category_delete.html:25 +#, python-format +msgid "This category contains %(count)s parts" +msgstr "" + +#: 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 "" + +#: part/templates/part/category_delete.html:29 +msgid "If this category is deleted, these parts will be moved to the top-level category Teile" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348 +msgid "Duplicate Part" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:21 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:33 +#, python-format +msgid "Showing stock for all variants of %(full_name)s" +msgstr "" + +#: part/templates/part/detail.html:43 +msgid "Part Stock Allocations" +msgstr "" + +#: part/templates/part/detail.html:60 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:65 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:122 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:162 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:166 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:167 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:194 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:235 part/templates/part/detail.html:236 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:261 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:267 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:277 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:279 templates/js/translated/part.js:272 +msgid "Copy BOM" +msgstr "" + +#: part/templates/part/detail.html:281 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:286 +msgid "New BOM Item" +msgstr "" + +#: part/templates/part/detail.html:287 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:300 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:317 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:342 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:352 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:380 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:396 +msgid "Delete manufacturer parts" +msgstr "" + +#: part/templates/part/detail.html:578 +msgid "Delete selected BOM items?" +msgstr "" + +#: part/templates/part/detail.html:579 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: part/templates/part/detail.html:628 +msgid "Create BOM Item" +msgstr "" + +#: part/templates/part/detail.html:685 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:693 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:788 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/detail.html:845 +msgid "Edit Part Notes" +msgstr "" + +#: part/templates/part/detail.html:958 +#, python-format +msgid "Purchase Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:970 +#, python-format +msgid "Unit Price-Cost Difference - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:982 +#, python-format +msgid "Supplier Unit Cost - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1071 +#, python-format +msgid "Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: templates/patterns/wizard/upload.html:11 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:15 +msgid "Unsuffitient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:13 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:35 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/location.html:33 +msgid "Barcode actions" +msgstr "" + +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:39 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:55 +#: stock/templates/stock/location.html:36 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:51 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:56 +#: stock/templates/stock/item_base.html:112 +#: stock/templates/stock/location.html:44 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:63 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:69 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:84 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:87 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:90 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:93 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:112 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:116 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:120 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:124 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:128 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:132 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:138 +#: part/templates/part/part_base.html:146 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:139 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:765 +#: templates/js/translated/model_renderers.js:175 +#: templates/js/translated/part.js:533 templates/js/translated/part.js:610 +msgid "Inactive" +msgstr "" + +#: part/templates/part/part_base.html:156 +#: part/templates/part/part_base.html:579 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:173 +#, python-format +msgid "This part is a variant of %(link)s" +msgstr "" + +#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217 +#: templates/js/translated/table_filters.js:193 +msgid "In Stock" +msgstr "" + +#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:217 +msgid "Required for Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:224 +msgid "Allocated to Orders" +msgstr "" + +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 +msgid "Can Build" +msgstr "" + +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132 +#: templates/js/translated/part.js:1305 +msgid "Building" +msgstr "" + +#: part/templates/part/part_base.html:295 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:324 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:328 +#: stock/templates/stock/item_base.html:168 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:449 part/templates/part/prices.html:144 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:492 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:573 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 +msgid "Total Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 +#: templates/js/translated/bom.js:857 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 +#: part/templates/part/prices.html:243 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_sidebar.html:12 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:26 +msgid "Used In" +msgstr "" + +#: part/templates/part/part_sidebar.html:34 +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: part/templates/part/part_sidebar.html:48 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/partial_delete.html:9 +#, python-format +msgid "" +"Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" +"
Disable the \"Active\" part attribute and re-try.\n" +" " +msgstr "" + +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "" + +#: part/templates/part/partial_delete.html:22 +#, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format +msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:43 +#, python-format +msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:54 +#, python-format +msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:65 +#, python-format +msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." +msgstr "" + +#: part/templates/part/prices.html:16 +msgid "Pricing ranges" +msgstr "" + +#: part/templates/part/prices.html:22 +msgid "Show supplier cost" +msgstr "" + +#: part/templates/part/prices.html:23 +msgid "Show purchase price" +msgstr "" + +#: part/templates/part/prices.html:50 +msgid "Show BOM cost" +msgstr "" + +#: part/templates/part/prices.html:117 +msgid "Show sale cost" +msgstr "" + +#: part/templates/part/prices.html:118 +msgid "Show sale price" +msgstr "" + +#: part/templates/part/prices.html:140 +msgid "Calculation parameters" +msgstr "" + +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 +msgid "Supplier Cost" +msgstr "" + +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:181 +msgid "Stock Pricing" +msgstr "" + +#: part/templates/part/prices.html:190 +msgid "No stock pricing history is available for this part." +msgstr "" + +#: part/templates/part/prices.html:200 +msgid "Internal Cost" +msgstr "" + +#: part/templates/part/prices.html:215 part/views.py:1390 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:230 +msgid "BOM Cost" +msgstr "" + +#: part/templates/part/prices.html:256 +msgid "Sale Cost" +msgstr "" + +#: part/templates/part/prices.html:296 +msgid "No sale pice history available for this part." +msgstr "" + +#: part/templates/part/set_category.html:9 +msgid "Set category for the following parts" +msgstr "" + +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 +#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 +#: templates/js/translated/part.js:1309 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +#, python-format +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" + +#: part/templatetags/inventree_extras.py:125 +msgid "Unknown database" +msgstr "" + +#: part/views.py:90 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:140 +#, python-brace-format +msgid "Set category for {n} parts" +msgstr "" + +#: part/views.py:212 +msgid "Match References" +msgstr "" + +#: part/views.py:509 +msgid "None" +msgstr "" + +#: part/views.py:568 +msgid "Part QR Code" +msgstr "" + +#: part/views.py:670 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:696 +msgid "Updated part image" +msgstr "" + +#: part/views.py:699 +msgid "Part image not found" +msgstr "" + +#: part/views.py:850 +msgid "Confirm Part Deletion" +msgstr "" + +#: part/views.py:857 +msgid "Part was deleted" +msgstr "" + +#: part/views.py:866 +msgid "Part Pricing" +msgstr "" + +#: part/views.py:1015 +msgid "Create Part Parameter Template" +msgstr "" + +#: part/views.py:1025 +msgid "Edit Part Parameter Template" +msgstr "" + +#: part/views.py:1032 +msgid "Delete Part Parameter Template" +msgstr "" + +#: part/views.py:1091 templates/js/translated/part.js:315 +msgid "Edit Part Category" +msgstr "" + +#: part/views.py:1129 +msgid "Delete Part Category" +msgstr "" + +#: part/views.py:1135 +msgid "Part category was deleted" +msgstr "" + +#: part/views.py:1144 +msgid "Create Category Parameter Template" +msgstr "" + +#: part/views.py:1245 +msgid "Edit Category Parameter Template" +msgstr "" + +#: part/views.py:1301 +msgid "Delete Category Parameter Template" +msgstr "" + +#: part/views.py:1323 +msgid "Added new price break" +msgstr "" + +#: part/views.py:1399 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:1407 +msgid "Delete Internal Price Break" +msgstr "" + +#: plugin/integration.py:138 +msgid "No author found" +msgstr "" + +#: plugin/integration.py:152 +msgid "No date found" +msgstr "" + +#: plugin/models.py:26 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:27 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:32 +msgid "Key" +msgstr "" + +#: plugin/models.py:33 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:41 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:47 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:199 +msgid "Plugin" +msgstr "" + +#: plugin/samples/integration/sample.py:42 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:43 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:48 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:49 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/serializers.py:50 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:51 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:56 +msgid "Package Name" +msgstr "" + +#: plugin/serializers.py:57 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:60 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:61 +msgid "This will install this plugin now into the current instance. The instance will go into maintenance." +msgstr "" + +#: plugin/serializers.py:76 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:78 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: report/api.py:235 report/api.py:282 +#, python-brace-format +msgid "Template file '{template}' is missing or does not exist" +msgstr "" + +#: report/models.py:178 +msgid "Template name" +msgstr "" + +#: report/models.py:184 +msgid "Report template file" +msgstr "" + +#: report/models.py:191 +msgid "Report template description" +msgstr "" + +#: report/models.py:197 +msgid "Report revision number (auto-increments)" +msgstr "" + +#: report/models.py:288 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:295 +msgid "Report template is enabled" +msgstr "" + +#: report/models.py:319 +msgid "StockItem query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:327 +msgid "Include Installed Tests" +msgstr "" + +#: report/models.py:328 +msgid "Include test results for stock items installed inside assembled item" +msgstr "" + +#: report/models.py:378 +msgid "Build Filters" +msgstr "" + +#: report/models.py:379 +msgid "Build query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:421 +msgid "Part Filters" +msgstr "" + +#: report/models.py:422 +msgid "Part query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:456 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:494 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:548 +msgid "Snippet" +msgstr "" + +#: report/models.py:549 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:553 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:588 +msgid "Asset" +msgstr "" + +#: report/models.py:589 +msgid "Report asset file" +msgstr "" + +#: report/models.py:592 +msgid "Asset file description" +msgstr "" + +#: report/templates/report/inventree_build_order_base.html:147 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:79 +#: stock/models.py:519 stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:373 templates/js/translated/build.js:521 +#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295 +#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 +msgid "Serial Number" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:88 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1976 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:94 +#: stock/models.py:1982 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 +msgid "Date" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:108 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:110 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 +#: templates/js/translated/stock.js:2909 +msgid "Serial" +msgstr "" + +#: stock/api.py:501 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:508 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:533 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 +#: stock/templates/stock/item_base.html:195 +#: templates/js/translated/stock.js:1833 +msgid "Expiry Date" +msgstr "" + +#: stock/forms.py:75 stock/forms.py:199 +msgid "Expiration date for this stock item" +msgstr "" + +#: stock/forms.py:78 +msgid "Enter unique serial numbers (or leave blank)" +msgstr "" + +#: stock/forms.py:133 +msgid "Destination for serialized stock (by default, will remain in current location)" +msgstr "" + +#: stock/forms.py:135 +msgid "Serial numbers" +msgstr "" + +#: stock/forms.py:135 +msgid "Unique serial numbers (must match quantity)" +msgstr "" + +#: stock/forms.py:137 stock/forms.py:171 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/forms.py:169 +msgid "Destination location for uninstalled items" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm uninstall" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm removal of installed stock items" +msgstr "" + +#: stock/models.py:62 stock/models.py:613 +#: stock/templates/stock/item_base.html:418 +msgid "Owner" +msgstr "" + +#: stock/models.py:63 stock/models.py:614 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:338 +msgid "StockItem with this serial number already exists" +msgstr "" + +#: stock/models.py:374 +#, python-brace-format +msgid "Part type ('{pf}') must be {pe}" +msgstr "" + +#: stock/models.py:384 stock/models.py:393 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:385 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:407 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:413 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:420 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:463 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:472 +msgid "Base part" +msgstr "" + +#: stock/models.py:480 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:486 stock/templates/stock/location.html:16 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:489 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:496 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:502 stock/templates/stock/item_base.html:300 +msgid "Installed In" +msgstr "" + +#: stock/models.py:505 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:521 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:535 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:539 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:548 +msgid "Source Build" +msgstr "" + +#: stock/models.py:550 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:561 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:564 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:570 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:577 +msgid "Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:590 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:590 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:600 stock/templates/stock/item.html:128 +msgid "Stock Item Notes" +msgstr "" + +#: stock/models.py:609 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:1096 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1102 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1108 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({n})" +msgstr "" + +#: stock/models.py:1111 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1114 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1121 +#, python-brace-format +msgid "Serial numbers already exist: {exists}" +msgstr "" + +#: stock/models.py:1192 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1195 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1201 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1204 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1207 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1214 stock/serializers.py:832 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1218 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1222 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1226 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1397 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:1896 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:1953 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:1959 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:1977 +msgid "Test name" +msgstr "" + +#: stock/models.py:1983 +msgid "Test result" +msgstr "" + +#: stock/models.py:1989 +msgid "Test output value" +msgstr "" + +#: stock/models.py:1996 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2002 +msgid "Test notes" +msgstr "" + +#: stock/serializers.py:173 +msgid "Purchase price of this stock item" +msgstr "" + +#: stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: stock/serializers.py:294 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:309 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:315 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:333 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:346 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:363 stock/views.py:1108 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:650 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:654 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:684 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:690 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:698 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:708 stock/serializers.py:938 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:796 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:801 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:802 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:807 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:808 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:818 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:900 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:928 +msgid "Stock transaction notes" +msgstr "" + +#: stock/templates/stock/item.html:18 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:29 +msgid "New Entry" +msgstr "" + +#: stock/templates/stock/item.html:48 +msgid "Stock Item Allocations" +msgstr "" + +#: stock/templates/stock/item.html:64 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:72 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:81 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:89 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:93 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:150 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:42 +#: templates/js/translated/barcode.js:330 +#: templates/js/translated/barcode.js:335 +msgid "Unlink Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:44 +msgid "Link Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:53 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:72 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:76 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:79 templates/stock_table.html:48 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:82 templates/stock_table.html:49 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:85 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/location.html:57 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:92 templates/stock_table.html:54 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:95 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:98 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:98 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:102 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:102 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:117 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:120 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:122 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:125 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:163 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:163 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:172 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:172 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:252 +msgid "Expired" +msgstr "" + +#: stock/templates/stock/item_base.html:201 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:201 +#: templates/js/translated/table_filters.js:258 +msgid "Stale" +msgstr "" + +#: stock/templates/stock/item_base.html:208 +#: templates/js/translated/stock.js:1846 +msgid "Last Updated" +msgstr "" + +#: stock/templates/stock/item_base.html:213 +msgid "Last Stocktake" +msgstr "" + +#: stock/templates/stock/item_base.html:217 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:235 +msgid "You are not in the list of owners of this item. This stock item cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:242 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:243 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:256 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:264 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:272 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:278 +msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +msgstr "" + +#: stock/templates/stock/item_base.html:319 +#: templates/js/translated/build.js:1317 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:326 +msgid "Barcode Identifier" +msgstr "" + +#: stock/templates/stock/item_base.html:368 +msgid "Parent Item" +msgstr "" + +#: stock/templates/stock/item_base.html:386 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:411 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:492 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_delete.html:9 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: stock/templates/stock/item_delete.html:12 +#, python-format +msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:37 +msgid "Check-in Items" +msgstr "" + +#: stock/templates/stock/location.html:65 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:67 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:69 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:79 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:80 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 +msgid "Location Path" +msgstr "" + +#: stock/templates/stock/location.html:106 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:119 +msgid "You are not in the list of owners of this location. This stock location cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 +#: templates/stats.html:109 users/models.py:42 +msgid "Stock Locations" +msgstr "" + +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 +msgid "Printing Actions" +msgstr "" + +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 +msgid "Print labels" +msgstr "" + +#: stock/templates/stock/location_delete.html:7 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/templates/stock/stock_uninstall.html:8 +msgid "The following stock items will be uninstalled" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:8 +#, python-format +msgid "This stock item is current an instance of %(part)s" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tracking_delete.html:6 +msgid "Are you sure you want to delete this stock tracking entry?" +msgstr "" + +#: stock/views.py:162 templates/js/translated/stock.js:140 +msgid "Edit Stock Location" +msgstr "" + +#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 +msgid "Owner is required (ownership control is enabled)" +msgstr "" + +#: stock/views.py:284 +msgid "Stock Location QR code" +msgstr "" + +#: stock/views.py:303 +msgid "Return to Stock" +msgstr "" + +#: stock/views.py:312 +msgid "Specify a valid location" +msgstr "" + +#: stock/views.py:323 +msgid "Stock item returned from customer" +msgstr "" + +#: stock/views.py:334 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:351 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:352 +msgid "Check the confirmation box" +msgstr "" + +#: stock/views.py:456 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/views.py:481 +msgid "Uninstall Stock Items" +msgstr "" + +#: stock/views.py:578 templates/js/translated/stock.js:1075 +msgid "Confirm stock adjustment" +msgstr "" + +#: stock/views.py:589 +msgid "Uninstalled stock items" +msgstr "" + +#: stock/views.py:611 templates/js/translated/stock.js:333 +msgid "Edit Stock Item" +msgstr "" + +#: stock/views.py:761 +msgid "Create new Stock Location" +msgstr "" + +#: stock/views.py:862 +msgid "Create new Stock Item" +msgstr "" + +#: stock/views.py:1004 templates/js/translated/stock.js:313 +msgid "Duplicate Stock Item" +msgstr "" + +#: stock/views.py:1086 +msgid "Quantity cannot be negative" +msgstr "" + +#: stock/views.py:1186 +msgid "Delete Stock Location" +msgstr "" + +#: stock/views.py:1199 +msgid "Delete Stock Item" +msgstr "" + +#: stock/views.py:1210 +msgid "Delete Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1217 +msgid "Edit Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1226 +msgid "Add Stock Tracking Entry" +msgstr "" + +#: templates/403.html:5 templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/404.html:5 templates/404.html:11 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:14 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:5 templates/500.html:11 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:14 +msgid "The InvenTree server raised an internal error" +msgstr "" + +#: templates/500.html:15 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:10 templates/503.html:35 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:41 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:88 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:98 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:108 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:119 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:145 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:168 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:191 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:202 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:224 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:235 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:255 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:266 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:286 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:297 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:8 +msgid "Currency Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:19 +msgid "Base Currency" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:24 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:38 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:44 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:49 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/global.html:9 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:29 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part.html:62 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:10 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:16 +msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:33 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:38 +#: templates/js/translated/plugin.js:15 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: users/models.py:39 +msgid "Admin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin_settings.html:28 +msgid "Author" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin_settings.html:43 +msgid "Version" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:92 +msgid "Inactive plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:115 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:124 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:126 +msgid "Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:10 +#, python-format +msgid "Plugin details for %(name)s" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:17 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:48 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:62 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:71 +msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:77 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:83 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:86 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:88 +msgid "This plugin was found in a local InvenTree path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:94 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:104 +#: templates/about.html:47 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +#: templates/about.html:40 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:112 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +msgid "Sign Status" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:122 +msgid "Sign Key" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reports.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:33 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:38 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:115 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:117 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:119 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:208 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:230 +#: templates/InvenTree/settings/settings.html:329 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:309 +msgid "No part parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:313 +msgid "ID" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +#: templates/InvenTree/settings/user.html:12 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:17 +msgid "Label Printing" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:24 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:27 +msgid "Server Configuration" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:33 +msgid "Currencies" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:39 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:18 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 +msgid "Username" +msgstr "" + +#: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 +msgid "Last Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:54 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:75 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:77 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:79 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:85 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:149 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:104 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:109 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:117 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:122 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user.html:162 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "You currently do not have any factors set up." +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:220 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:226 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:227 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:236 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:237 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:241 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:242 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:243 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:252 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:254 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:266 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:25 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:35 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:46 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:88 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:102 +#, python-format +msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/about.html:10 +msgid "InvenTree Version Information" +msgstr "" + +#: templates/about.html:11 templates/about.html:105 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/about.html:20 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:25 +msgid "Development Version" +msgstr "" + +#: templates/about.html:28 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:30 +msgid "Update Available" +msgstr "" + +#: templates/about.html:53 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:58 +msgid "API Version" +msgstr "" + +#: templates/about.html:63 +msgid "Python Version" +msgstr "" + +#: templates/about.html:68 +msgid "Django Version" +msgstr "" + +#: templates/about.html:73 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:78 +msgid "Credits" +msgstr "" + +#: templates/about.html:83 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:88 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:95 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:95 +msgid "copy version information" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:10 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:16 +#, python-format +msgid "Please confirm that %(email)s is an email address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:27 +#, python-format +msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:16 +#: templates/account/login.html:39 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:21 +#, python-format +msgid "" +"Please sign in with one\n" +"of your existing third party accounts or sign up\n" +"for a account and sign in below:" +msgstr "" + +#: templates/account/login.html:25 +#, python-format +msgid "" +"If you have not created an account yet, then please\n" +"sign up first." +msgstr "" + +#: templates/account/login.html:42 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:47 +msgid "InvenTree demo instance" +msgstr "" + +#: templates/account/login.html:47 +msgid "Click here for login details" +msgstr "" + +#: templates/account/login.html:55 +msgid "or use SSO" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:36 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:11 templates/account/signup.html:22 +msgid "Sign Up" +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:27 +msgid "Or use a SSO-provider for signup" +msgstr "" + +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "Back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "" + +#: templates/base.html:97 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:100 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:100 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +#: templates/js/translated/bom.js:1335 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:18 +#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411 +#: templates/js/translated/build.js:2048 +#: templates/js/translated/table_filters.js:178 +msgid "Available" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:31 +msgid "You are receiving this email because you are subscribed to notifications for this part " +msgstr "" + +#: templates/email/email.html:35 +msgid "InvenTree version" +msgstr "" + +#: templates/email/low_stock_notification.html:7 +#, python-format +msgid " The available stock for %(part)s has fallen below the configured minimum level" +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:19 +msgid "Minimum Quantity" +msgstr "" + +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +msgid "No Response" +msgstr "" + +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +msgid "No response from the InvenTree server" +msgstr "" + +#: templates/js/translated/api.js:192 +msgid "Error 400: Bad request" +msgstr "" + +#: templates/js/translated/api.js:193 +msgid "API request returned error code 400" +msgstr "" + +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +msgid "Error 401: Not Authenticated" +msgstr "" + +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +msgid "Authentication credentials not supplied" +msgstr "" + +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +msgid "Error 403: Permission Denied" +msgstr "" + +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +msgid "You do not have the required permissions to access this function" +msgstr "" + +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +msgid "Error 404: Resource Not Found" +msgstr "" + +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +msgid "The requested resource could not be located on the server" +msgstr "" + +#: templates/js/translated/api.js:212 +msgid "Error 405: Method Not Allowed" +msgstr "" + +#: templates/js/translated/api.js:213 +msgid "HTTP method not allowed at URL" +msgstr "" + +#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +msgid "Error 408: Timeout" +msgstr "" + +#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +msgid "Connection timeout while requesting data from server" +msgstr "" + +#: templates/js/translated/api.js:221 +msgid "Unhandled Error Code" +msgstr "" + +#: templates/js/translated/api.js:222 +msgid "Error code" +msgstr "" + +#: templates/js/translated/attachment.js:78 +msgid "No attachments found" +msgstr "" + +#: templates/js/translated/attachment.js:100 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:110 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:111 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:167 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:180 +msgid "Edit attachment" +msgstr "" + +#: templates/js/translated/attachment.js:187 +msgid "Delete attachment" +msgstr "" + +#: templates/js/translated/barcode.js:29 +msgid "Scan barcode data here using wedge scanner" +msgstr "" + +#: templates/js/translated/barcode.js:31 +msgid "Enter barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:35 +msgid "Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:53 +msgid "Enter optional notes for stock transfer" +msgstr "" + +#: templates/js/translated/barcode.js:54 +msgid "Enter notes" +msgstr "" + +#: templates/js/translated/barcode.js:92 +msgid "Server error" +msgstr "" + +#: templates/js/translated/barcode.js:113 +msgid "Unknown response from server" +msgstr "" + +#: templates/js/translated/barcode.js:140 +#: templates/js/translated/modals.js:1046 +msgid "Invalid server response" +msgstr "" + +#: templates/js/translated/barcode.js:233 +msgid "Scan barcode data below" +msgstr "" + +#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +msgid "Scan Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:291 +msgid "No URL in response" +msgstr "" + +#: templates/js/translated/barcode.js:309 +msgid "Link Barcode to Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:332 +msgid "This will remove the association between this stock item and the barcode" +msgstr "" + +#: templates/js/translated/barcode.js:338 +msgid "Unlink" +msgstr "" + +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 +msgid "Remove stock item" +msgstr "" + +#: templates/js/translated/barcode.js:439 +msgid "Check Stock Items into Location" +msgstr "" + +#: templates/js/translated/barcode.js:443 +#: templates/js/translated/barcode.js:573 +msgid "Check In" +msgstr "" + +#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:612 +msgid "Error transferring stock" +msgstr "" + +#: templates/js/translated/barcode.js:507 +msgid "Stock Item already scanned" +msgstr "" + +#: templates/js/translated/barcode.js:511 +msgid "Stock Item already in this location" +msgstr "" + +#: templates/js/translated/barcode.js:518 +msgid "Added stock item" +msgstr "" + +#: templates/js/translated/barcode.js:525 +msgid "Barcode does not match Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:568 +msgid "Check Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:633 +msgid "Barcode does not match a valid location" +msgstr "" + +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:294 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:295 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:300 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:301 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:307 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:308 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:313 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:314 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:319 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:320 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:325 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:326 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:509 +msgid "Remove substitute part" +msgstr "" + +#: templates/js/translated/bom.js:565 +msgid "Select and add a new substitute part using the input below" +msgstr "" + +#: templates/js/translated/bom.js:576 +msgid "Are you sure you wish to remove this substitute part link?" +msgstr "" + +#: templates/js/translated/bom.js:582 +msgid "Remove Substitute Part" +msgstr "" + +#: templates/js/translated/bom.js:621 +msgid "Add Substitute" +msgstr "" + +#: templates/js/translated/bom.js:622 +msgid "Edit BOM Item Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:741 +msgid "Substitutes Available" +msgstr "" + +#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 +msgid "Variant stock allowed" +msgstr "" + +#: templates/js/translated/bom.js:750 +msgid "Open subassembly" +msgstr "" + +#: templates/js/translated/bom.js:822 +msgid "Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:837 +msgid "Purchase Price Range" +msgstr "" + +#: templates/js/translated/bom.js:844 +msgid "Purchase Price Average" +msgstr "" + +#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 +msgid "View BOM" +msgstr "" + +#: templates/js/translated/bom.js:953 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:955 +msgid "This line has been validated" +msgstr "" + +#: templates/js/translated/bom.js:957 +msgid "Edit substitute parts" +msgstr "" + +#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 +msgid "No BOM items found" +msgstr "" + +#: templates/js/translated/bom.js:1116 +msgid "Are you sure you want to delete this BOM item?" +msgstr "" + +#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 +msgid "Required Part" +msgstr "" + +#: templates/js/translated/bom.js:1340 +msgid "Inherited from parent BOM" +msgstr "" + +#: templates/js/translated/build.js:85 +msgid "Edit Build Order" +msgstr "" + +#: templates/js/translated/build.js:119 +msgid "Create Build Order" +msgstr "" + +#: templates/js/translated/build.js:140 +msgid "Build order is ready to be completed" +msgstr "" + +#: templates/js/translated/build.js:145 +msgid "Build Order is incomplete" +msgstr "" + +#: templates/js/translated/build.js:173 +msgid "Complete Build Order" +msgstr "" + +#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:182 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 +#: templates/js/translated/stock.js:184 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:225 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:234 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:242 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:273 +msgid "Allocate stock items to this build output" +msgstr "" + +#: templates/js/translated/build.js:284 +msgid "Unallocate stock from build output" +msgstr "" + +#: templates/js/translated/build.js:293 +msgid "Complete build output" +msgstr "" + +#: templates/js/translated/build.js:301 +msgid "Delete build output" +msgstr "" + +#: templates/js/translated/build.js:324 +msgid "Are you sure you wish to unallocate stock items from this build?" +msgstr "" + +#: templates/js/translated/build.js:342 +msgid "Unallocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:360 templates/js/translated/build.js:508 +msgid "Select Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 +msgid "At least one build output must be selected" +msgstr "" + +#: templates/js/translated/build.js:415 templates/js/translated/build.js:563 +msgid "Output" +msgstr "" + +#: templates/js/translated/build.js:431 +msgid "Complete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:576 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:665 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 +msgid "Location not specified" +msgstr "" + +#: templates/js/translated/build.js:885 +msgid "No active build outputs found" +msgstr "" + +#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 +#: templates/js/translated/order.js:1982 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 +#: templates/js/translated/order.js:1983 +msgid "Delete stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1354 +msgid "Edit Allocation" +msgstr "" + +#: templates/js/translated/build.js:1364 +msgid "Remove Allocation" +msgstr "" + +#: templates/js/translated/build.js:1389 +msgid "Substitute parts available" +msgstr "" + +#: templates/js/translated/build.js:1406 +msgid "Quantity Per" +msgstr "" + +#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 +#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 +msgid "Allocated" +msgstr "" + +#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 +msgid "Build stock" +msgstr "" + +#: templates/js/translated/build.js:1476 templates/stock_table.html:53 +msgid "Order stock" +msgstr "" + +#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 +msgid "Allocate stock" +msgstr "" + +#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 +msgid "Specify stock allocation quantity" +msgstr "" + +#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 +#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 +msgid "Select Parts" +msgstr "" + +#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 +msgid "You must select at least one part to allocate" +msgstr "" + +#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 +msgid "Select source location (leave blank to take from all locations)" +msgstr "" + +#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 +msgid "Confirm stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1674 +msgid "Allocate Stock Items to Build Order" +msgstr "" + +#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 +msgid "No matching stock locations" +msgstr "" + +#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 +msgid "No matching stock items" +msgstr "" + +#: templates/js/translated/build.js:1875 +msgid "No builds matching query" +msgstr "" + +#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 +#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 +#: templates/js/translated/stock.js:2603 +msgid "Select" +msgstr "" + +#: templates/js/translated/build.js:1912 +msgid "Build order is overdue" +msgstr "" + +#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 +msgid "No user information" +msgstr "" + +#: templates/js/translated/build.js:1985 +msgid "No information" +msgstr "" + +#: templates/js/translated/build.js:2036 +msgid "No parts allocated for" +msgstr "" + +#: templates/js/translated/company.js:65 +msgid "Add Manufacturer" +msgstr "" + +#: templates/js/translated/company.js:78 templates/js/translated/company.js:177 +msgid "Add Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:99 +msgid "Edit Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:108 +msgid "Delete Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:165 templates/js/translated/order.js:248 +msgid "Add Supplier" +msgstr "" + +#: templates/js/translated/company.js:193 +msgid "Add Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:208 +msgid "Edit Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:218 +msgid "Delete Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:286 +msgid "Add new Company" +msgstr "" + +#: templates/js/translated/company.js:363 +msgid "Parts Supplied" +msgstr "" + +#: templates/js/translated/company.js:372 +msgid "Parts Manufactured" +msgstr "" + +#: templates/js/translated/company.js:387 +msgid "No company information found" +msgstr "" + +#: templates/js/translated/company.js:406 +msgid "The following manufacturer parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:423 +msgid "Delete Manufacturer Parts" +msgstr "" + +#: templates/js/translated/company.js:480 +msgid "No manufacturer parts found" +msgstr "" + +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:517 +#: templates/js/translated/part.js:602 +msgid "Template part" +msgstr "" + +#: templates/js/translated/company.js:504 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:521 +#: templates/js/translated/part.js:606 +msgid "Assembled part" +msgstr "" + +#: templates/js/translated/company.js:631 templates/js/translated/part.js:696 +msgid "No parameters found" +msgstr "" + +#: templates/js/translated/company.js:668 templates/js/translated/part.js:738 +msgid "Edit parameter" +msgstr "" + +#: templates/js/translated/company.js:669 templates/js/translated/part.js:739 +msgid "Delete parameter" +msgstr "" + +#: templates/js/translated/company.js:688 templates/js/translated/part.js:756 +msgid "Edit Parameter" +msgstr "" + +#: templates/js/translated/company.js:699 templates/js/translated/part.js:768 +msgid "Delete Parameter" +msgstr "" + +#: templates/js/translated/company.js:737 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:429 +msgid "true" +msgstr "" + +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:430 +msgid "false" +msgstr "" + +#: templates/js/translated/filters.js:204 +msgid "Select filter" +msgstr "" + +#: templates/js/translated/filters.js:286 +msgid "Reload data" +msgstr "" + +#: templates/js/translated/filters.js:290 +msgid "Add new filter" +msgstr "" + +#: templates/js/translated/filters.js:293 +msgid "Clear all filters" +msgstr "" + +#: templates/js/translated/filters.js:338 +msgid "Create filter" +msgstr "" + +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 +msgid "Action Prohibited" +msgstr "" + +#: templates/js/translated/forms.js:353 +msgid "Create operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:368 +msgid "Update operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:382 +msgid "Delete operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:396 +msgid "View operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:681 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1129 templates/modals.html:19 +#: templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/js/translated/forms.js:1558 +msgid "No results found" +msgstr "" + +#: templates/js/translated/forms.js:1768 +msgid "Searching" +msgstr "" + +#: templates/js/translated/forms.js:2013 +msgid "Clear input" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2479 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2491 +msgid "Select Columns" +msgstr "" + +#: templates/js/translated/helpers.js:19 +msgid "YES" +msgstr "" + +#: templates/js/translated/helpers.js:21 +msgid "NO" +msgstr "" + +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1051 +msgid "Select Stock Items" +msgstr "" + +#: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 +msgid "No labels found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/label.js:80 +msgid "Select Stock Locations" +msgstr "" + +#: templates/js/translated/label.js:81 +msgid "Stock location(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:99 +msgid "No labels found which match selected stock location(s)" +msgstr "" + +#: templates/js/translated/label.js:135 +msgid "Part(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:154 +msgid "No labels found which match the selected part(s)" +msgstr "" + +#: templates/js/translated/label.js:228 +msgid "stock items selected" +msgstr "" + +#: templates/js/translated/label.js:236 +msgid "Select Label" +msgstr "" + +#: templates/js/translated/label.js:251 +msgid "Select Label Template" +msgstr "" + +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 +msgid "Cancel" +msgstr "" + +#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/js/translated/modals.js:118 +msgid "Form Title" +msgstr "" + +#: templates/js/translated/modals.js:392 +msgid "Waiting for server..." +msgstr "" + +#: templates/js/translated/modals.js:551 +msgid "Show Error Information" +msgstr "" + +#: templates/js/translated/modals.js:609 +msgid "Accept" +msgstr "" + +#: templates/js/translated/modals.js:666 +msgid "Loading Data" +msgstr "" + +#: templates/js/translated/modals.js:937 +msgid "Invalid response from server" +msgstr "" + +#: templates/js/translated/modals.js:937 +msgid "Form data missing from server response" +msgstr "" + +#: templates/js/translated/modals.js:949 +msgid "Error posting form data" +msgstr "" + +#: templates/js/translated/modals.js:1046 +msgid "JSON response missing form data" +msgstr "" + +#: templates/js/translated/modals.js:1061 +msgid "Error 400: Bad Request" +msgstr "" + +#: templates/js/translated/modals.js:1062 +msgid "Server returned error code 400" +msgstr "" + +#: templates/js/translated/modals.js:1085 +msgid "Error requesting form data" +msgstr "" + +#: templates/js/translated/model_renderers.js:40 +msgid "Company ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:77 +msgid "Stock ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:130 +msgid "Location ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:147 +msgid "Build ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:249 +#: templates/js/translated/model_renderers.js:270 +msgid "Order ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:287 +msgid "Shipment ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:307 +msgid "Category ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:344 +msgid "Manufacturer Part ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:373 +msgid "Supplier Part ID" +msgstr "" + +#: templates/js/translated/order.js:75 +msgid "No stock items have been allocated to this shipment" +msgstr "" + +#: templates/js/translated/order.js:80 +msgid "The following stock items will be shipped" +msgstr "" + +#: templates/js/translated/order.js:120 +msgid "Complete Shipment" +msgstr "" + +#: templates/js/translated/order.js:126 +msgid "Confirm Shipment" +msgstr "" + +#: templates/js/translated/order.js:181 +msgid "Create New Shipment" +msgstr "" + +#: templates/js/translated/order.js:206 +msgid "Add Customer" +msgstr "" + +#: templates/js/translated/order.js:231 +msgid "Create Sales Order" +msgstr "" + +#: templates/js/translated/order.js:366 +msgid "Export Order" +msgstr "" + +#: templates/js/translated/order.js:460 +msgid "Select Line Items" +msgstr "" + +#: templates/js/translated/order.js:461 +msgid "At least one line item must be selected" +msgstr "" + +#: templates/js/translated/order.js:486 +msgid "Quantity to receive" +msgstr "" + +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 +msgid "Stock Status" +msgstr "" + +#: templates/js/translated/order.js:587 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/order.js:588 +msgid "Ordered" +msgstr "" + +#: templates/js/translated/order.js:590 +msgid "Receive" +msgstr "" + +#: templates/js/translated/order.js:609 +msgid "Confirm receipt of items" +msgstr "" + +#: templates/js/translated/order.js:610 +msgid "Receive Purchase Order Items" +msgstr "" + +#: templates/js/translated/order.js:790 templates/js/translated/part.js:809 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230 +msgid "Order is overdue" +msgstr "" + +#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356 +msgid "Edit Line Item" +msgstr "" + +#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367 +msgid "Delete Line Item" +msgstr "" + +#: templates/js/translated/order.js:987 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138 +msgid "Total" +msgstr "" + +#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 +#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052 +msgid "Unit Price" +msgstr "" + +#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179 +msgid "Total Price" +msgstr "" + +#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313 +msgid "Edit line item" +msgstr "" + +#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:1206 +msgid "No sales orders found" +msgstr "" + +#: templates/js/translated/order.js:1244 +msgid "Invalid Customer" +msgstr "" + +#: templates/js/translated/order.js:1322 +msgid "Edit shipment" +msgstr "" + +#: templates/js/translated/order.js:1325 +msgid "Complete shipment" +msgstr "" + +#: templates/js/translated/order.js:1330 +msgid "Delete shipment" +msgstr "" + +#: templates/js/translated/order.js:1350 +msgid "Edit Shipment" +msgstr "" + +#: templates/js/translated/order.js:1367 +msgid "Delete Shipment" +msgstr "" + +#: templates/js/translated/order.js:1401 +msgid "No matching shipments found" +msgstr "" + +#: templates/js/translated/order.js:1411 +msgid "Shipment Reference" +msgstr "" + +#: templates/js/translated/order.js:1435 +msgid "Not shipped" +msgstr "" + +#: templates/js/translated/order.js:1441 +msgid "Tracking" +msgstr "" + +#: templates/js/translated/order.js:1601 +msgid "Allocate Stock Items to Sales Order" +msgstr "" + +#: templates/js/translated/order.js:1809 +msgid "No sales order allocations found" +msgstr "" + +#: templates/js/translated/order.js:1898 +msgid "Edit Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:1915 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1916 +msgid "Delete Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 +#: templates/js/translated/stock.js:1560 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057 +msgid "Stock location not specified" +msgstr "" + +#: templates/js/translated/order.js:2297 +msgid "Allocate serial numbers" +msgstr "" + +#: templates/js/translated/order.js:2303 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/order.js:2321 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/order.js:2324 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/order.js:2382 +msgid "Allocate Serial Numbers" +msgstr "" + +#: templates/js/translated/order.js:2484 +msgid "Update Unit Price" +msgstr "" + +#: templates/js/translated/order.js:2498 +msgid "No matching line items" +msgstr "" + +#: templates/js/translated/part.js:54 +msgid "Part Attributes" +msgstr "" + +#: templates/js/translated/part.js:58 +msgid "Part Creation Options" +msgstr "" + +#: templates/js/translated/part.js:62 +msgid "Part Duplication Options" +msgstr "" + +#: templates/js/translated/part.js:66 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:80 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:198 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:199 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:207 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:208 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:264 +msgid "Copy Image" +msgstr "" + +#: templates/js/translated/part.js:265 +msgid "Copy image from original part" +msgstr "" + +#: templates/js/translated/part.js:273 +msgid "Copy bill of materials from original part" +msgstr "" + +#: templates/js/translated/part.js:280 +msgid "Copy Parameters" +msgstr "" + +#: templates/js/translated/part.js:281 +msgid "Copy parameter data from original part" +msgstr "" + +#: templates/js/translated/part.js:294 +msgid "Parent part category" +msgstr "" + +#: templates/js/translated/part.js:338 +msgid "Edit Part" +msgstr "" + +#: templates/js/translated/part.js:340 +msgid "Part edited" +msgstr "" + +#: templates/js/translated/part.js:351 +msgid "Create Part Variant" +msgstr "" + +#: templates/js/translated/part.js:418 +msgid "You are subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:420 +msgid "You have subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:425 +msgid "Subscribe to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:427 +msgid "You have unsubscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:444 +msgid "Validating the BOM will mark each line item as valid" +msgstr "" + +#: templates/js/translated/part.js:454 +msgid "Validate Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:457 +msgid "Validated Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:481 +msgid "Copy Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:509 templates/js/translated/part.js:594 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:513 templates/js/translated/part.js:598 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:525 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:529 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:644 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1012 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1036 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1273 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1296 +#: templates/js/translated/table_filters.js:425 +msgid "Low stock" +msgstr "" + +#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 +#: templates/js/translated/stock.js:2564 +msgid "Display as list" +msgstr "" + +#: templates/js/translated/part.js:1403 +msgid "Display as grid" +msgstr "" + +#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 +msgid "Display as tree" +msgstr "" + +#: templates/js/translated/part.js:1642 +msgid "Subscribed category" +msgstr "" + +#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 +msgid "Path" +msgstr "" + +#: templates/js/translated/part.js:1700 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 +msgid "Edit test result" +msgstr "" + +#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 +#: templates/js/translated/stock.js:1518 +msgid "Delete test result" +msgstr "" + +#: templates/js/translated/part.js:1758 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/translated/part.js:1780 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1794 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1819 +#, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1874 +#, python-brace-format +msgid "Edit ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:1875 +#, python-brace-format +msgid "Delete ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:1976 +msgid "Single Price" +msgstr "" + +#: templates/js/translated/part.js:1995 +msgid "Single Price Difference" +msgstr "" + +#: templates/js/translated/plugin.js:22 +msgid "The Plugin was installed" +msgstr "" + +#: templates/js/translated/report.js:67 +msgid "items selected" +msgstr "" + +#: templates/js/translated/report.js:75 +msgid "Select Report Template" +msgstr "" + +#: templates/js/translated/report.js:90 +msgid "Select Test Report Template" +msgstr "" + +#: templates/js/translated/report.js:119 +msgid "Stock item(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:136 templates/js/translated/report.js:189 +#: templates/js/translated/report.js:243 templates/js/translated/report.js:297 +#: templates/js/translated/report.js:351 +msgid "No Reports Found" +msgstr "" + +#: templates/js/translated/report.js:137 +msgid "No report templates found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/report.js:172 +msgid "Select Builds" +msgstr "" + +#: templates/js/translated/report.js:173 +msgid "Build(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:190 +msgid "No report templates found which match selected build(s)" +msgstr "" + +#: templates/js/translated/report.js:226 +msgid "Part(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:244 +msgid "No report templates found which match selected part(s)" +msgstr "" + +#: templates/js/translated/report.js:279 +msgid "Select Purchase Orders" +msgstr "" + +#: templates/js/translated/report.js:280 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/report.js:298 templates/js/translated/report.js:352 +msgid "No report templates found which match selected orders" +msgstr "" + +#: templates/js/translated/report.js:333 +msgid "Select Sales Orders" +msgstr "" + +#: templates/js/translated/report.js:334 +msgid "Sales Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/stock.js:75 +msgid "Serialize Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:103 +msgid "Confirm Stock Serialization" +msgstr "" + +#: templates/js/translated/stock.js:112 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:155 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:195 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:234 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:240 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:383 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:396 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:421 +msgid "Find Serial Number" +msgstr "" + +#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 +msgid "Enter serial number" +msgstr "" + +#: templates/js/translated/stock.js:442 +msgid "Enter a serial number" +msgstr "" + +#: templates/js/translated/stock.js:462 +msgid "No matching serial number" +msgstr "" + +#: templates/js/translated/stock.js:471 +msgid "More than one matching result found" +msgstr "" + +#: templates/js/translated/stock.js:516 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:527 +msgid "Include Sublocations" +msgstr "" + +#: templates/js/translated/stock.js:528 +msgid "Include stock items in sublocations" +msgstr "" + +#: templates/js/translated/stock.js:637 +msgid "Confirm stock assignment" +msgstr "" + +#: templates/js/translated/stock.js:638 +msgid "Assign Stock to Customer" +msgstr "" + +#: templates/js/translated/stock.js:715 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:716 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:718 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:719 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:805 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:806 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:901 +msgid "Transfer Stock" +msgstr "" + +#: templates/js/translated/stock.js:902 +msgid "Move" +msgstr "" + +#: templates/js/translated/stock.js:908 +msgid "Count Stock" +msgstr "" + +#: templates/js/translated/stock.js:909 +msgid "Count" +msgstr "" + +#: templates/js/translated/stock.js:913 +msgid "Remove Stock" +msgstr "" + +#: templates/js/translated/stock.js:914 +msgid "Take" +msgstr "" + +#: templates/js/translated/stock.js:918 +msgid "Add Stock" +msgstr "" + +#: templates/js/translated/stock.js:919 users/models.py:213 +msgid "Add" +msgstr "" + +#: templates/js/translated/stock.js:923 templates/stock_table.html:58 +msgid "Delete Stock" +msgstr "" + +#: templates/js/translated/stock.js:1012 +msgid "Quantity cannot be adjusted for serialized stock" +msgstr "" + +#: templates/js/translated/stock.js:1012 +msgid "Specify stock quantity" +msgstr "" + +#: templates/js/translated/stock.js:1052 +msgid "You must select at least one available stock item" +msgstr "" + +#: templates/js/translated/stock.js:1210 +msgid "PASS" +msgstr "" + +#: templates/js/translated/stock.js:1212 +msgid "FAIL" +msgstr "" + +#: templates/js/translated/stock.js:1217 +msgid "NO RESULT" +msgstr "" + +#: templates/js/translated/stock.js:1264 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1267 +msgid "Add test result" +msgstr "" + +#: templates/js/translated/stock.js:1293 +msgid "No test results found" +msgstr "" + +#: templates/js/translated/stock.js:1349 +msgid "Test Date" +msgstr "" + +#: templates/js/translated/stock.js:1501 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1523 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1552 +msgid "In production" +msgstr "" + +#: templates/js/translated/stock.js:1556 +msgid "Installed in Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:1564 +msgid "Assigned to Sales Order" +msgstr "" + +#: templates/js/translated/stock.js:1570 +msgid "No stock location set" +msgstr "" + +#: templates/js/translated/stock.js:1728 +msgid "Stock item is in production" +msgstr "" + +#: templates/js/translated/stock.js:1733 +msgid "Stock item assigned to sales order" +msgstr "" + +#: templates/js/translated/stock.js:1736 +msgid "Stock item assigned to customer" +msgstr "" + +#: templates/js/translated/stock.js:1740 +msgid "Stock item has expired" +msgstr "" + +#: templates/js/translated/stock.js:1742 +msgid "Stock item will expire soon" +msgstr "" + +#: templates/js/translated/stock.js:1748 +msgid "Serialized stock item has been allocated" +msgstr "" + +#: templates/js/translated/stock.js:1750 +msgid "Stock item has been fully allocated" +msgstr "" + +#: templates/js/translated/stock.js:1752 +msgid "Stock item has been partially allocated" +msgstr "" + +#: templates/js/translated/stock.js:1757 +msgid "Stock item has been installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:1764 +msgid "Stock item has been rejected" +msgstr "" + +#: templates/js/translated/stock.js:1766 +msgid "Stock item is lost" +msgstr "" + +#: templates/js/translated/stock.js:1768 +msgid "Stock item is destroyed" +msgstr "" + +#: templates/js/translated/stock.js:1772 +#: templates/js/translated/table_filters.js:188 +msgid "Depleted" +msgstr "" + +#: templates/js/translated/stock.js:1822 +msgid "Stocktake" +msgstr "" + +#: templates/js/translated/stock.js:1895 +msgid "Supplier part not specified" +msgstr "" + +#: templates/js/translated/stock.js:1933 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:2042 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:2069 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:2071 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:2270 +msgid "Set Stock Status" +msgstr "" + +#: templates/js/translated/stock.js:2284 +msgid "Select Status Code" +msgstr "" + +#: templates/js/translated/stock.js:2285 +msgid "Status code must be selected" +msgstr "" + +#: templates/js/translated/stock.js:2464 +msgid "Allocated Quantity" +msgstr "" + +#: templates/js/translated/stock.js:2659 +msgid "Invalid date" +msgstr "" + +#: templates/js/translated/stock.js:2681 +msgid "Details" +msgstr "" + +#: templates/js/translated/stock.js:2706 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2725 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2744 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2762 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2785 +msgid "Added" +msgstr "" + +#: templates/js/translated/stock.js:2793 +msgid "Removed" +msgstr "" + +#: templates/js/translated/stock.js:2834 +msgid "Edit tracking entry" +msgstr "" + +#: templates/js/translated/stock.js:2835 +msgid "Delete tracking entry" +msgstr "" + +#: templates/js/translated/stock.js:2886 +msgid "No installed items" +msgstr "" + +#: templates/js/translated/stock.js:2937 +msgid "Uninstall Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2973 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2974 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2976 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2977 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2978 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: templates/js/translated/stock.js:2991 +msgid "Select part to install" +msgstr "" + +#: templates/js/translated/table_filters.js:56 +msgid "Trackable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:60 +msgid "Assembled Part" +msgstr "" + +#: templates/js/translated/table_filters.js:64 +msgid "Validated" +msgstr "" + +#: templates/js/translated/table_filters.js:72 +msgid "Allow Variant Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:110 +#: templates/js/translated/table_filters.js:183 +msgid "Include sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:111 +msgid "Include locations" +msgstr "" + +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:402 +msgid "Include subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:126 +#: templates/js/translated/table_filters.js:437 +msgid "Subscribed" +msgstr "" + +#: templates/js/translated/table_filters.js:136 +#: templates/js/translated/table_filters.js:218 +msgid "Is Serialized" +msgstr "" + +#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:225 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/translated/table_filters.js:140 +#: templates/js/translated/table_filters.js:226 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:229 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:230 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:147 +#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/table_filters.js:221 +#: templates/js/translated/table_filters.js:222 +msgid "Serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:152 +#: templates/js/translated/table_filters.js:239 +msgid "Batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:374 +msgid "Active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:164 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:169 +msgid "Part is an assembly" +msgstr "" + +#: templates/js/translated/table_filters.js:173 +msgid "Is allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:174 +msgid "Item has been allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:179 +msgid "Stock is available for use" +msgstr "" + +#: templates/js/translated/table_filters.js:184 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:189 +msgid "Show stock items which are depleted" +msgstr "" + +#: templates/js/translated/table_filters.js:194 +msgid "Show items which are in stock" +msgstr "" + +#: templates/js/translated/table_filters.js:198 +msgid "In Production" +msgstr "" + +#: templates/js/translated/table_filters.js:199 +msgid "Show items which are in production" +msgstr "" + +#: templates/js/translated/table_filters.js:203 +msgid "Include Variants" +msgstr "" + +#: templates/js/translated/table_filters.js:204 +msgid "Include stock items for variant parts" +msgstr "" + +#: templates/js/translated/table_filters.js:208 +msgid "Installed" +msgstr "" + +#: templates/js/translated/table_filters.js:209 +msgid "Show stock items which are installed in another item" +msgstr "" + +#: templates/js/translated/table_filters.js:214 +msgid "Show items which have been assigned to a customer" +msgstr "" + +#: templates/js/translated/table_filters.js:234 +#: templates/js/translated/table_filters.js:235 +msgid "Stock status" +msgstr "" + +#: templates/js/translated/table_filters.js:243 +msgid "Has purchase price" +msgstr "" + +#: templates/js/translated/table_filters.js:244 +msgid "Show stock items which have a purchase price set" +msgstr "" + +#: templates/js/translated/table_filters.js:253 +msgid "Show stock items which have expired" +msgstr "" + +#: templates/js/translated/table_filters.js:259 +msgid "Show stock which is close to expiring" +msgstr "" + +#: templates/js/translated/table_filters.js:285 +msgid "Build status" +msgstr "" + +#: templates/js/translated/table_filters.js:298 +#: templates/js/translated/table_filters.js:339 +msgid "Assigned to me" +msgstr "" + +#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:326 +#: templates/js/translated/table_filters.js:347 +msgid "Order status" +msgstr "" + +#: templates/js/translated/table_filters.js:331 +#: templates/js/translated/table_filters.js:352 +msgid "Outstanding" +msgstr "" + +#: templates/js/translated/table_filters.js:403 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:407 +msgid "Has IPN" +msgstr "" + +#: templates/js/translated/table_filters.js:408 +msgid "Part has internal part number" +msgstr "" + +#: templates/js/translated/table_filters.js:413 +msgid "Show active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:421 +msgid "Stock available" +msgstr "" + +#: templates/js/translated/table_filters.js:449 +msgid "Purchasable" +msgstr "" + +#: templates/js/translated/tables.js:368 +msgid "Loading data" +msgstr "" + +#: templates/js/translated/tables.js:371 +msgid "rows per page" +msgstr "" + +#: templates/js/translated/tables.js:376 +msgid "Showing all rows" +msgstr "" + +#: templates/js/translated/tables.js:378 +msgid "Showing" +msgstr "" + +#: templates/js/translated/tables.js:378 +msgid "to" +msgstr "" + +#: templates/js/translated/tables.js:378 +msgid "of" +msgstr "" + +#: templates/js/translated/tables.js:378 +msgid "rows" +msgstr "" + +#: templates/js/translated/tables.js:382 templates/search_form.html:6 +#: templates/search_form.html:7 +msgid "Search" +msgstr "" + +#: templates/js/translated/tables.js:385 +msgid "No matching results" +msgstr "" + +#: templates/js/translated/tables.js:388 +msgid "Hide/Show pagination" +msgstr "" + +#: templates/js/translated/tables.js:391 +msgid "Refresh" +msgstr "" + +#: templates/js/translated/tables.js:394 +msgid "Toggle" +msgstr "" + +#: templates/js/translated/tables.js:397 +msgid "Columns" +msgstr "" + +#: templates/js/translated/tables.js:400 +msgid "All" +msgstr "" + +#: templates/navbar.html:42 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:54 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:114 +msgid "Logout" +msgstr "" + +#: templates/navbar.html:116 +msgid "Login" +msgstr "" + +#: templates/navbar.html:136 +msgid "About InvenTree" +msgstr "" + +#: templates/navbar_demo.html:5 +msgid "InvenTree demo mode" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:6 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:8 +msgid "Log in again" +msgstr "" + +#: templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/stock_table.html:14 +msgid "Export Stock Information" +msgstr "" + +#: templates/stock_table.html:20 +msgid "Barcode Actions" +msgstr "" + +#: templates/stock_table.html:36 +msgid "Print test reports" +msgstr "" + +#: templates/stock_table.html:43 +msgid "Stock Options" +msgstr "" + +#: templates/stock_table.html:48 +msgid "Add to selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Remove from selected stock items" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Stocktake selected stock items" +msgstr "" + +#: templates/stock_table.html:51 +msgid "Move selected stock items" +msgstr "" + +#: templates/stock_table.html:51 +msgid "Move stock" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 +msgid "Order selected items" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:58 +msgid "Delete selected items" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:64 +msgid "Users" +msgstr "" + +#: users/admin.py:65 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:187 +msgid "The following users are members of multiple groups:" +msgstr "" + +#: users/admin.py:210 +msgid "Personal info" +msgstr "" + +#: users/admin.py:211 +msgid "Permissions" +msgstr "" + +#: users/admin.py:214 +msgid "Important dates" +msgstr "" + +#: users/models.py:200 +msgid "Permission set" +msgstr "" + +#: users/models.py:208 +msgid "Group" +msgstr "" + +#: users/models.py:211 +msgid "View" +msgstr "" + +#: users/models.py:211 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:213 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:215 +msgid "Change" +msgstr "" + +#: users/models.py:215 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:217 +msgid "Permission to delete items" +msgstr "" From 7be832cc9ba6a6a53e797e94136504006554a020 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 23 Feb 2022 02:01:46 +0100 Subject: [PATCH 17/30] [BUG] Unable to create build output Fix if no allocate set Fixes #2663 --- InvenTree/build/serializers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/InvenTree/build/serializers.py b/InvenTree/build/serializers.py index c7577fa68c..e708bf0b3b 100644 --- a/InvenTree/build/serializers.py +++ b/InvenTree/build/serializers.py @@ -236,6 +236,7 @@ class BuildOutputCreateSerializer(serializers.Serializer): auto_allocate = serializers.BooleanField( required=False, default=False, + allow_null=True, label=_('Auto Allocate Serial Numbers'), help_text=_('Automatically allocate required items with matching serial numbers'), ) From 733062385c455d02371e34890a90b3be9e2dee04 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 23 Feb 2022 16:49:37 +1100 Subject: [PATCH 18/30] Translation merge (#2667) * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin --- InvenTree/locale/de/LC_MESSAGES/django.po | 32 +- InvenTree/locale/el/LC_MESSAGES/django.po | 32 +- InvenTree/locale/es/LC_MESSAGES/django.po | 4113 +++++++++++---------- InvenTree/locale/fr/LC_MESSAGES/django.po | 32 +- InvenTree/locale/he/LC_MESSAGES/django.po | 32 +- InvenTree/locale/hu/LC_MESSAGES/django.po | 1705 ++++----- InvenTree/locale/id/LC_MESSAGES/django.po | 32 +- InvenTree/locale/it/LC_MESSAGES/django.po | 32 +- InvenTree/locale/ja/LC_MESSAGES/django.po | 32 +- InvenTree/locale/ko/LC_MESSAGES/django.po | 32 +- InvenTree/locale/nl/LC_MESSAGES/django.po | 32 +- InvenTree/locale/no/LC_MESSAGES/django.po | 32 +- InvenTree/locale/pl/LC_MESSAGES/django.po | 32 +- InvenTree/locale/pt/LC_MESSAGES/django.po | 32 +- InvenTree/locale/ru/LC_MESSAGES/django.po | 32 +- InvenTree/locale/sv/LC_MESSAGES/django.po | 32 +- InvenTree/locale/th/LC_MESSAGES/django.po | 32 +- InvenTree/locale/tr/LC_MESSAGES/django.po | 32 +- InvenTree/locale/vi/LC_MESSAGES/django.po | 32 +- InvenTree/locale/zh/LC_MESSAGES/django.po | 32 +- 20 files changed, 3243 insertions(+), 3151 deletions(-) diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 95f96bede6..12ae5e3a9f 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 23:03\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 11:36\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "Hebräisch" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "Ungarisch" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "Portugiesisch" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Chinesisch" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 77cb4dffeb..7fdeb54843 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "" #: InvenTree/settings.py:662 -msgid "Italian" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:663 -msgid "Japanese" +msgid "Italian" msgstr "" #: InvenTree/settings.py:664 -msgid "Korean" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:665 -msgid "Dutch" +msgid "Korean" msgstr "" #: InvenTree/settings.py:666 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:667 -msgid "Polish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:668 -msgid "Portugese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:669 -msgid "Russian" +msgid "Portugese" msgstr "" #: InvenTree/settings.py:670 -msgid "Swedish" +msgid "Russian" msgstr "" #: InvenTree/settings.py:671 -msgid "Thai" +msgid "Swedish" msgstr "" #: InvenTree/settings.py:672 -msgid "Turkish" +msgid "Thai" msgstr "" #: InvenTree/settings.py:673 -msgid "Vietnamese" +msgid "Turkish" msgstr "" #: InvenTree/settings.py:674 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 3bc254a1fa..edc2bc2d8f 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -3,28 +3,28 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:03\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" -"Language-Team: Spanish, Mexico\n" -"Language: es_MX\n" +"Language-Team: Spanish\n" +"Language: es_ES\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" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" -"X-Crowdin-Language: es-MX\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:55 msgid "API endpoint not found" -msgstr "Endpoint de API no encontrado" +msgstr "endpoint API no encontrado" #: InvenTree/api.py:101 msgid "No action specified" -msgstr "Ninguna acción especificada" +msgstr "No se especificó ninguna acción" #: InvenTree/api.py:116 msgid "No matching action found" @@ -32,7 +32,7 @@ msgstr "No se encontró ninguna acción coincidente" #: InvenTree/fields.py:100 msgid "Enter date" -msgstr "Ingrese fecha" +msgstr "Ingrese la fecha" #: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 #: order/forms.py:57 templates/account/email_confirm.html:20 @@ -50,19 +50,19 @@ msgstr "Confirmar borrado de artículo" #: InvenTree/forms.py:174 msgid "Enter password" -msgstr "Ingrese contraseña" +msgstr "Introduzca contraseña" #: InvenTree/forms.py:175 msgid "Enter new password" -msgstr "Ingrese nueva contraseña" +msgstr "Ingrese su nueva contraseña" #: InvenTree/forms.py:182 msgid "Confirm password" -msgstr "Confirmar contraseña" +msgstr "Confirmar la contraseña" #: InvenTree/forms.py:183 msgid "Confirm new password" -msgstr "Confirmar nueva contraseña" +msgstr "Confirmar contraseña nueva" #: InvenTree/forms.py:215 msgid "Select Category" @@ -74,7 +74,7 @@ msgstr "Email (de nuevo)" #: InvenTree/forms.py:240 msgid "Email address confirmation" -msgstr "Confirmación de email" +msgstr "Confirmación de dirección de email" #: InvenTree/forms.py:260 msgid "You must type the same email each time." @@ -83,7 +83,7 @@ msgstr "Debe escribir el mismo correo electrónico cada vez." #: InvenTree/helpers.py:439 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "Duplicar serie: {n}" +msgstr "Número de serie duplicado: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 #: stock/views.py:1082 @@ -92,36 +92,36 @@ msgstr "Cantidad proporcionada no válida" #: InvenTree/helpers.py:449 msgid "Empty serial number string" -msgstr "Cadena de número de serie vacía" +msgstr "No se ha proporcionado un número de serie" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 #: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" -msgstr "Grupo inválido: {g}" +msgstr "Grupo no válido: un {g}" #: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" -msgstr "" +msgstr "Grupo no válido {group}" #: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" -msgstr "" +msgstr "No válido/sin grupo {group}" #: InvenTree/helpers.py:522 msgid "No serial numbers found" -msgstr "No se encontraron números de serie" +msgstr "Numeros de serie no encontrados" #: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})" +msgstr "El número de números de serie únicos ({s}) debe coincidir con la cantidad ({q})" #: InvenTree/models.py:176 msgid "Missing file" -msgstr "Falta archivo" +msgstr "Archivo no encontrado" #: InvenTree/models.py:177 msgid "Missing external link" @@ -130,11 +130,11 @@ msgstr "Falta enlace externo" #: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" -msgstr "Adjunto" +msgstr "Archivo adjunto" #: InvenTree/models.py:189 msgid "Select file to attach" -msgstr "Seleccionar archivo a adjuntar" +msgstr "Seleccionar archivo para adjuntar" #: InvenTree/models.py:195 company/models.py:131 company/models.py:348 #: company/models.py:564 order/models.py:127 part/models.py:860 @@ -155,7 +155,7 @@ msgstr "Comentario" #: InvenTree/models.py:199 msgid "File comment" -msgstr "Comentario de archivo" +msgstr "Comentario del archivo" #: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 #: common/models.py:1236 common/models.py:1464 common/models.py:1465 @@ -175,28 +175,28 @@ msgstr "El nombre del archivo no debe estar vacío" #: InvenTree/models.py:255 msgid "Invalid attachment directory" -msgstr "Directorio adjunto inválido" +msgstr "Directorio de archivos adjuntos no válido" #: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" -msgstr "El nombre de archivo contiene caracteres no válidos '{c}'" +msgstr "El nombre del archivo contiene el carácter ilegal '{c}'" #: InvenTree/models.py:268 msgid "Filename missing extension" -msgstr "Falta extensión del nombre de archivo" +msgstr "Falta el nombre de extensión del archivo" #: InvenTree/models.py:275 msgid "Attachment with this filename already exists" -msgstr "Ya existe un adjunto con este nombre de archivo" +msgstr "Ya existe un archivo adjunto con este nombre" #: InvenTree/models.py:282 msgid "Error renaming file" -msgstr "Error renombrando archivo" +msgstr "Error al cambiar el nombre del archivo" #: InvenTree/models.py:317 msgid "Invalid choice" -msgstr "Elección no válida" +msgstr "Selección no válida" #: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 #: company/models.py:415 label/models.py:112 part/models.py:804 @@ -243,19 +243,19 @@ msgstr "Descripción (opcional)" #: InvenTree/models.py:349 msgid "parent" -msgstr "principal" +msgstr "padre" #: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" -msgstr "Debe ser un número válido" +msgstr "Debe ser un numero valido" #: InvenTree/serializers.py:299 msgid "Filename" -msgstr "Nombre de archivo" +msgstr "Nombre de Archivo" #: InvenTree/serializers.py:334 msgid "Invalid value" -msgstr "" +msgstr "Valor inválido" #: InvenTree/serializers.py:355 msgid "Data File" @@ -267,11 +267,11 @@ msgstr "" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Tipo de archivo no soportado" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "El archivo es demasiado grande" #: InvenTree/serializers.py:407 msgid "No columns found in file" @@ -328,60 +328,64 @@ msgid "Hebrew" msgstr "Hebreo" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Japonés" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Holandés" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Noruego" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Polaco" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "Portugués" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Ruso" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Sueco" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Tailandés" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Chino" #: InvenTree/status.py:94 msgid "Background worker check failed" -msgstr "" +msgstr "Falló la comprobación en segundo plano del worker" #: InvenTree/status.py:98 msgid "Email backend not configured" @@ -414,7 +418,7 @@ msgstr "Cancelado" #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:187 msgid "Lost" -msgstr "Perdido" +msgstr "Perdida" #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 #: InvenTree/status_codes.py:189 @@ -496,11 +500,11 @@ msgstr "Elemento de componente eliminado" #: InvenTree/status_codes.py:291 msgid "Split from parent item" -msgstr "Separar del artículo principal" +msgstr "Separar del elemento principal" #: InvenTree/status_codes.py:292 msgid "Split child item" -msgstr "" +msgstr "Dividir elemento secundario" #: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" @@ -508,19 +512,19 @@ msgstr "Artículos de stock combinados" #: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" -msgstr "Enviado al cliente" +msgstr "Enviar al cliente" #: InvenTree/status_codes.py:297 msgid "Returned from customer" -msgstr "Devuelto por el cliente" +msgstr "Devolución del cliente" #: InvenTree/status_codes.py:299 msgid "Build order output created" -msgstr "Orden de ensamble Trabajo de ensamblaje creado" +msgstr "Trabajo de ensamblaje creado" #: InvenTree/status_codes.py:300 msgid "Build order output completed" -msgstr "" +msgstr "Construir orden de salida completado" #: InvenTree/status_codes.py:302 msgid "Received against purchase order" @@ -528,7 +532,7 @@ msgstr "Recibido contra la orden de compra" #: InvenTree/status_codes.py:317 msgid "Production" -msgstr "" +msgstr "Producción" #: InvenTree/validators.py:25 msgid "Not a valid currency code" @@ -536,7 +540,7 @@ msgstr "No es un código de moneda válido" #: InvenTree/validators.py:53 msgid "Invalid character in part name" -msgstr "Carácter inválido en el nombre del artículo" +msgstr "Carácter no válido en el nombre del artículo" #: InvenTree/validators.py:66 #, python-brace-format @@ -564,7 +568,7 @@ msgstr "El excedente no debe superar el 100%" #: InvenTree/validators.py:162 msgid "Invalid value for overage" -msgstr "" +msgstr "Valor no válido para sobrecarga" #: InvenTree/views.py:538 msgid "Delete Item" @@ -612,42 +616,42 @@ msgstr "No se ha encontrado ningún artículo de stock que coincida" #: barcodes/api.py:193 msgid "Barcode already matches Stock Item" -msgstr "El código de barras ya corresponde a un Elemento del Stock" +msgstr "El código de barras ya está asignado a un objeto de inventario" #: barcodes/api.py:197 msgid "Barcode already matches Stock Location" -msgstr "El código de barras ya corresponde a una Ubicación de Stock" +msgstr "El código de barras ya coincide con una ubicación de stock" #: barcodes/api.py:201 msgid "Barcode already matches Part" -msgstr "El código de barras ya corresponde a una parte" +msgstr "El código de barras ya está asignado a un objeto de inventario" #: barcodes/api.py:207 barcodes/api.py:219 msgid "Barcode hash already matches Stock Item" -msgstr "La comprobación (hash) del código de barras ya corresponde a un Elemento del Stock" +msgstr "El código de barras ya coincide con un artículo de stock" #: barcodes/api.py:225 msgid "Barcode associated with Stock Item" -msgstr "Código de barras asignado al Elemento del Stock" +msgstr "Código de barras asignado al objeto de inventario" #: build/forms.py:20 msgid "Confirm cancel" -msgstr "¿Deseas cancelar?" +msgstr "Confirmar cancelación" #: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" -msgstr "" +msgstr "Confirmar la cancelación de construcción" #: build/models.py:135 msgid "Invalid choice for parent build" -msgstr "Opción no válida para el armado principal" +msgstr "Opción no válida para la construcción padre" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 #: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" -msgstr "Orden de Producción" +msgstr "Construir órden" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 @@ -657,11 +661,11 @@ msgstr "Orden de Producción" #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" -msgstr "Ordenes de Producción" +msgstr "Construir órdenes" #: build/models.py:200 msgid "Build Order Reference" -msgstr "Referencia de Orden de Producción" +msgstr "Número de orden de construcción o armado" #: build/models.py:201 order/models.py:213 order/models.py:541 #: order/models.py:812 part/models.py:2714 @@ -675,16 +679,16 @@ msgstr "Referencia" #: build/models.py:212 msgid "Brief description of the build" -msgstr "Breve descripción de la producción" +msgstr "Breve descripción de la construcción o armado" #: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" -msgstr "Armado Principal" +msgstr "Construcción o Armado Superior" #: build/models.py:222 msgid "BuildOrder to which this build is allocated" -msgstr "Orden de Producción a la cual esta producción pertenece" +msgstr "Orden de Construcción o Armado a la que se asigna" #: build/models.py:227 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 @@ -720,24 +724,24 @@ msgstr "Parte" #: build/models.py:235 msgid "Select part to build" -msgstr "Seleccionar parte a producir" +msgstr "Seleccionar parte a construir o armar" #: build/models.py:240 msgid "Sales Order Reference" -msgstr "Referencia de Orden de Venta" +msgstr "Referencia de orden de venta" #: build/models.py:244 msgid "SalesOrder to which this build is allocated" -msgstr "Ordenes de Venta a la cual esta producción pertenece" +msgstr "Orden de Venta a la que se asigna" #: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" -msgstr "Ubicación de origen" +msgstr "Ubicación de la fuente" #: build/models.py:253 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" -msgstr "" +msgstr "Seleccione la ubicación de donde tomar stock para esta construcción o armado (deje en blanco para tomar desde cualquier ubicación)" #: build/models.py:258 msgid "Destination Location" @@ -753,7 +757,7 @@ msgstr "Cantidad a crear" #: build/models.py:269 msgid "Number of stock items to build" -msgstr "Número de elementos de stock a construir" +msgstr "Número de objetos existentes a construir" #: build/models.py:273 msgid "Completed items" @@ -761,15 +765,15 @@ msgstr "Elementos completados" #: build/models.py:275 msgid "Number of stock items which have been completed" -msgstr "Número de artículos de stock que han sido completados" +msgstr "Número de productos en stock que se han completado" #: build/models.py:279 part/templates/part/part_base.html:234 msgid "Build Status" -msgstr "" +msgstr "Estado de la construcción" #: build/models.py:283 msgid "Build status code" -msgstr "" +msgstr "Código de estado de construcción" #: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" @@ -777,7 +781,7 @@ msgstr "Numero de lote" #: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" -msgstr "" +msgstr "Número de lote de este producto final" #: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 @@ -786,11 +790,11 @@ msgstr "Fecha de Creación" #: build/models.py:298 order/models.py:563 msgid "Target completion date" -msgstr "Fecha de finalización objetivo" +msgstr "Fecha límite de finalización" #: build/models.py:299 msgid "Target date for build completion. Build will be overdue after this date." -msgstr "" +msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha." #: build/models.py:302 order/models.py:255 #: templates/js/translated/build.js:1996 @@ -820,7 +824,7 @@ msgstr "Responsable" #: build/models.py:326 msgid "User responsible for this build order" -msgstr "" +msgstr "Usuario responsable de esta orden" #: build/models.py:331 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 @@ -851,28 +855,28 @@ msgstr "Notas" #: build/models.py:337 msgid "Extra build notes" -msgstr "" +msgstr "Notas adicionales de construcción" #: build/models.py:756 msgid "No build output specified" -msgstr "" +msgstr "No se ha especificado salida de construcción" #: build/models.py:759 msgid "Build output is already completed" -msgstr "" +msgstr "La construcción de la salida ya está completa" #: build/models.py:762 msgid "Build output does not match Build Order" -msgstr "" +msgstr "La salida de la construcción no coincide con el orden de construcción" #: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" +msgstr "Item de construcción o armado debe especificar un resultado o salida, ya que la parte maestra está marcada como rastreable" #: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" -msgstr "" +msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})" #: build/models.py:1173 msgid "Stock item is over-allocated" @@ -894,11 +898,11 @@ msgstr "Artículo de stock seleccionado no encontrado en BOM" #: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" -msgstr "" +msgstr "Construcción o Armado" #: build/models.py:1303 msgid "Build to allocate parts" -msgstr "" +msgstr "Armar para asignar partes" #: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 #: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 @@ -958,7 +962,7 @@ msgstr "Cantidad" #: build/models.py:1333 msgid "Stock quantity to allocate to build" -msgstr "" +msgstr "Cantidad de stock a asignar para construir" #: build/models.py:1341 msgid "Install into" @@ -970,37 +974,37 @@ msgstr "Artículo de stock de destino" #: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" -msgstr "" +msgstr "Resultado de la construcción o armado" #: build/serializers.py:150 msgid "Build output does not match the parent build" -msgstr "Salida de armado no coincide con armado principal" +msgstr "La salida de construcción no coincide con la construcción padre" #: build/serializers.py:154 msgid "Output part does not match BuildOrder part" -msgstr "" +msgstr "La parte de salida no coincide con la parte de la Orden de Construcción" #: build/serializers.py:158 msgid "This build output has already been completed" -msgstr "" +msgstr "Esta salida de construcción ya ha sido completada" #: build/serializers.py:164 msgid "This build output is not fully allocated" -msgstr "" +msgstr "Esta salida de construcción no está completamente asignada" #: build/serializers.py:189 msgid "Enter quantity for build output" -msgstr "" +msgstr "Ingrese la cantidad para la producción de la construcción" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 #: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" -msgstr "" +msgstr "La cantidad debe ser mayor que cero" #: build/serializers.py:208 msgid "Integer quantity required for trackable parts" -msgstr "" +msgstr "Cantidad entera requerida para partes rastreables" #: build/serializers.py:211 msgid "Integer quantity required, as the bill of materials contains trackable parts" @@ -1014,23 +1018,23 @@ msgstr "Números de serie" #: build/serializers.py:226 msgid "Enter serial numbers for build outputs" -msgstr "" +msgstr "Introduzca los números de serie de salidas de construcción" #: build/serializers.py:239 msgid "Auto Allocate Serial Numbers" -msgstr "" +msgstr "Autoasignar Números de Serie" #: build/serializers.py:240 msgid "Automatically allocate required items with matching serial numbers" -msgstr "" +msgstr "Asignar automáticamente los elementos requeridos con números de serie coincidentes" #: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" -msgstr "" +msgstr "Los siguientes números de serie ya existen" #: build/serializers.py:327 build/serializers.py:392 msgid "A list of build outputs must be provided" -msgstr "" +msgstr "Debe proporcionarse una lista de salidas de construcción" #: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 @@ -1044,11 +1048,11 @@ msgstr "" #: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 #: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 msgid "Location" -msgstr "Ubicación" +msgstr "Unicación" #: build/serializers.py:370 msgid "Location for completed build outputs" -msgstr "" +msgstr "Ubicación para las salidas de construcción completadas" #: build/serializers.py:376 build/templates/build/build_base.html:142 #: build/templates/build/detail.html:63 order/models.py:557 @@ -1062,139 +1066,139 @@ msgstr "Estado" #: build/serializers.py:428 msgid "Accept Unallocated" -msgstr "" +msgstr "Aceptar no asignado" #: build/serializers.py:429 msgid "Accept that stock items have not been fully allocated to this build order" -msgstr "" +msgstr "Aceptar que los artículos de stock no se han asignado completamente a este pedido de construcción" #: build/serializers.py:439 templates/js/translated/build.js:150 msgid "Required stock has not been fully allocated" -msgstr "" +msgstr "El stock requerido no ha sido completamente asignado" #: build/serializers.py:444 msgid "Accept Incomplete" -msgstr "" +msgstr "Aceptar incompleto" #: build/serializers.py:445 msgid "Accept that the required number of build outputs have not been completed" -msgstr "" +msgstr "Aceptar que el número requerido de salidas de construcción no se han completado" #: build/serializers.py:455 templates/js/translated/build.js:154 msgid "Required build quantity has not been completed" -msgstr "" +msgstr "La cantidad de construcción requerida aún no se ha completado" #: build/serializers.py:464 msgid "Build order has incomplete outputs" -msgstr "" +msgstr "El orden de construcción tiene salidas incompletas" #: build/serializers.py:467 build/templates/build/build_base.html:95 msgid "No build outputs have been created for this build order" -msgstr "" +msgstr "No se han creado salidas para esta orden de construcción" #: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 #: part/models.py:2988 msgid "BOM Item" -msgstr "" +msgstr "Item de Lista de Materiales" #: build/serializers.py:505 msgid "Build output" -msgstr "" +msgstr "Resultado de la construcción o armado" #: build/serializers.py:514 msgid "Build output must point to the same build" -msgstr "" +msgstr "La salida de la construcción debe apuntar a la misma construcción" #: build/serializers.py:561 msgid "bom_item.part must point to the same part as the build order" -msgstr "" +msgstr "bom_item.part debe apuntar a la misma parte que la orden de construcción" #: build/serializers.py:576 stock/serializers.py:642 msgid "Item must be in stock" -msgstr "" +msgstr "El artículo debe estar en stock" #: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" -msgstr "" +msgstr "Cantidad disponible ({q}) excedida" #: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" -msgstr "" +msgstr "La salida de la construcción debe especificarse para la asignación de partes rastreadas" #: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" -msgstr "" +msgstr "La salida de construcción no se puede especificar para la asignación de partes no rastreadas" #: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" -msgstr "Debe proporcionar adjudicación de artículos" +msgstr "Debe proporcionarse la adjudicación de artículos" #: build/tasks.py:98 msgid "Stock required for build order" -msgstr "" +msgstr "Stock requerido para la orden de construcción" #: build/templates/build/build_base.html:39 #: order/templates/order/order_base.html:28 #: order/templates/order/sales_order_base.html:38 msgid "Print actions" -msgstr "" +msgstr "Imprimir acciones" #: build/templates/build/build_base.html:43 msgid "Print build order report" -msgstr "" +msgstr "Imprimir informe de orden de construcción" #: build/templates/build/build_base.html:50 msgid "Build actions" -msgstr "" +msgstr "Acciones de construcción o armado" #: build/templates/build/build_base.html:54 msgid "Edit Build" -msgstr "" +msgstr "Editar construcción o armado" #: build/templates/build/build_base.html:56 #: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" -msgstr "" +msgstr "Cancelar construcción o armado" #: build/templates/build/build_base.html:59 msgid "Delete Build" -msgstr "" +msgstr "Eliminar construcción o armado" #: build/templates/build/build_base.html:64 #: build/templates/build/build_base.html:65 msgid "Complete Build" -msgstr "" +msgstr "Completar construcción" #: build/templates/build/build_base.html:87 msgid "Build Description" -msgstr "" +msgstr "Descripción de Construcción" #: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "" +msgstr "Este pedido de construcción está asignado a la orden de venta %(link)s" #: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" -msgstr "" +msgstr "Esta orden de construcción es hijo de la orden de construcción %(link)s" #: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" -msgstr "" +msgstr "Orden de construcción está lista para marcar como completada" #: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" -msgstr "" +msgstr "La orden de construcción no se puede completar ya que existen salidas pendientes" #: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" -msgstr "" +msgstr "La cantidad de construcción requerida aún no se ha completado" #: build/templates/build/build_base.html:130 msgid "Stock has not been fully allocated to this Build Order" -msgstr "" +msgstr "Stock no ha sido asignado completamente a este pedido de construcción" #: build/templates/build/build_base.html:151 #: build/templates/build/detail.html:132 @@ -1204,12 +1208,12 @@ msgstr "" #: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" -msgstr "" +msgstr "Fecha objetivo" #: build/templates/build/build_base.html:156 #, python-format msgid "This build was due on %(target)s" -msgstr "" +msgstr "Esta construcción vence el %(target)s" #: build/templates/build/build_base.html:156 #: build/templates/build/build_base.html:201 @@ -1227,7 +1231,7 @@ msgstr "Vencido" #: templates/js/translated/build.js:1940 #: templates/js/translated/table_filters.js:365 msgid "Completed" -msgstr "Completado" +msgstr "Completados" #: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 @@ -1252,23 +1256,23 @@ msgstr "Salidas incompletas" #: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" +msgstr "Orden de construcción no se puede completar ya que quedan salidas incompletas de construcción" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "¿Estás seguro de que quieres cancelar esta construcción?" #: build/templates/build/detail.html:16 msgid "Build Details" -msgstr "" +msgstr "Detalles de Trabajo" #: build/templates/build/detail.html:39 msgid "Stock Source" -msgstr "" +msgstr "Fuente de stock" #: build/templates/build/detail.html:44 msgid "Stock can be taken from any available location." -msgstr "" +msgstr "Las existencias se pueden tomar desde cualquier ubicación disponible." #: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 @@ -1277,7 +1281,7 @@ msgstr "Destinación" #: build/templates/build/detail.html:57 msgid "Destination location not specified" -msgstr "" +msgstr "Se requiere ubicación de destino" #: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" @@ -1296,23 +1300,23 @@ msgstr "Lote" #: order/templates/order/sales_order_base.html:157 #: templates/js/translated/build.js:1962 msgid "Created" -msgstr "" +msgstr "Creado" #: build/templates/build/detail.html:138 msgid "No target date set" -msgstr "" +msgstr "Sin fecha objetivo" #: build/templates/build/detail.html:147 msgid "Build not complete" -msgstr "" +msgstr "Trabajo incompleto" #: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 msgid "Child Build Orders" -msgstr "" +msgstr "Órdenes de Trabajo herederas" #: build/templates/build/detail.html:173 msgid "Allocate Stock to Build" -msgstr "" +msgstr "Asignar Stock a Trabajo" #: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" @@ -1324,7 +1328,7 @@ msgstr "Desasignar stock" #: build/templates/build/detail.html:180 msgid "Allocate stock to build" -msgstr "" +msgstr "Asignar Stock a Trabajo" #: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8 msgid "Allocate Stock" @@ -1332,66 +1336,66 @@ msgstr "Asignar stock" #: build/templates/build/detail.html:184 msgid "Order required parts" -msgstr "" +msgstr "Pedir partes necesarias" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 #: part/templates/part/category.html:177 msgid "Order Parts" -msgstr "" +msgstr "Partes del pedido" #: build/templates/build/detail.html:197 msgid "Untracked stock has been fully allocated for this Build Order" -msgstr "" +msgstr "Stock no ha sido asignado completamente a esta Orden de Trabajo" #: build/templates/build/detail.html:201 msgid "Untracked stock has not been fully allocated for this Build Order" -msgstr "" +msgstr "El stock sin rastrear no ha sido asignado completamente para esta Orden de Trabajo" #: build/templates/build/detail.html:208 msgid "Allocate selected items" -msgstr "Asignar elementos seleccionados" +msgstr "Asignar partes seleccionadas" #: build/templates/build/detail.html:218 msgid "This Build Order does not have any associated untracked BOM items" -msgstr "Esta orden de trabajo no tiene ningún objeto BOM asociado sin seguimiento" +msgstr "Esta Orden de Trabajo no tiene ningún objeto BOM sin seguimiento asociados" #: build/templates/build/detail.html:227 msgid "Incomplete Build Outputs" -msgstr "" +msgstr "Salidas de Trabajo incompletas" #: build/templates/build/detail.html:231 msgid "Create new build output" -msgstr "" +msgstr "Crear nueva salida de trabajo" #: build/templates/build/detail.html:232 msgid "New Build Output" -msgstr "" +msgstr "Nueva Salida de Trabajo" #: build/templates/build/detail.html:246 msgid "Output Actions" -msgstr "" +msgstr "Acciones de salida" #: build/templates/build/detail.html:250 msgid "Complete selected build outputs" -msgstr "" +msgstr "Completa las salidas seleccionadas" #: build/templates/build/detail.html:251 msgid "Complete outputs" -msgstr "" +msgstr "Completar salidas" #: build/templates/build/detail.html:253 msgid "Delete selected build outputs" -msgstr "" +msgstr "Eliminar salidas seleccionadas" #: build/templates/build/detail.html:254 msgid "Delete outputs" -msgstr "" +msgstr "Eliminar salidas" #: build/templates/build/detail.html:270 msgid "Completed Build Outputs" -msgstr "" +msgstr "Salidas de Trabajo Completadas" #: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 @@ -1405,7 +1409,7 @@ msgstr "Adjuntos" #: build/templates/build/detail.html:298 msgid "Build Notes" -msgstr "" +msgstr "Notas del Trabajo" #: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 @@ -1417,11 +1421,11 @@ msgstr "" #: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 #: stock/templates/stock/item.html:230 msgid "Edit Notes" -msgstr "" +msgstr "Editar notas" #: build/templates/build/detail.html:502 msgid "Allocation Complete" -msgstr "" +msgstr "Asignación completa" #: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" @@ -1429,439 +1433,439 @@ msgstr "Todos los artículos de stock no rastreados han sido asignados" #: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" -msgstr "" +msgstr "Nueva Orden de Trabajo" #: build/templates/build/index.html:37 build/templates/build/index.html:38 msgid "Print Build Orders" -msgstr "" +msgstr "Imprimir Ordenes de Trabajo" #: build/templates/build/index.html:44 #: order/templates/order/purchase_orders.html:34 #: order/templates/order/sales_orders.html:37 msgid "Display calendar view" -msgstr "" +msgstr "Mostrar vista de calendario" #: build/templates/build/index.html:47 #: order/templates/order/purchase_orders.html:37 #: order/templates/order/sales_orders.html:40 msgid "Display list view" -msgstr "" +msgstr "Mostrar vista de lista" #: build/templates/build/sidebar.html:5 msgid "Build Order Details" -msgstr "" +msgstr "Configuración de Pedido de Trabajo" #: build/templates/build/sidebar.html:12 msgid "Pending Items" -msgstr "Artículos Pendientes" +msgstr "Artículos pendientes" #: build/templates/build/sidebar.html:15 msgid "Completed Items" -msgstr "Artículos Completados" +msgstr "Elementos completados" #: build/views.py:73 msgid "Build was cancelled" -msgstr "" +msgstr "Trabajo fue cancelado" #: build/views.py:114 msgid "Delete Build Order" -msgstr "" +msgstr "Eliminar Orden de Trabajo" #: common/files.py:65 msgid "Unsupported file format: {ext.upper()}" -msgstr "" +msgstr "Formato de archivo no soportado: {ext.upper()}" #: common/files.py:67 msgid "Error reading file (invalid encoding)" -msgstr "" +msgstr "Error al leer el archivo (codificación inválida)" #: common/files.py:72 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "Error al leer el archivo (formato no válido)" #: common/files.py:74 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "Error leyendo el archivo (dimensión incorrecta)" #: common/files.py:76 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "Error al leer el archivo (los datos podrían estar corruptos)" #: common/forms.py:34 msgid "File" -msgstr "" +msgstr "Archivo" #: common/forms.py:35 msgid "Select file to upload" -msgstr "" +msgstr "Seleccione el archivo a cargar" #: common/forms.py:50 msgid "{name.title()} File" -msgstr "" +msgstr "Archivo {name.title()}" #: common/forms.py:51 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "Seleccione el archivo {name} para subir" #: common/models.py:352 msgid "Settings key (must be unique - case insensitive)" -msgstr "" +msgstr "Clave de configuración (debe ser única - mayúsculas y minúsculas)" #: common/models.py:354 msgid "Settings value" -msgstr "" +msgstr "Valor de ajuste" #: common/models.py:388 msgid "Chosen value is not a valid option" -msgstr "" +msgstr "El valor elegido no es una opción válida" #: common/models.py:408 msgid "Value must be a boolean value" -msgstr "" +msgstr "El valor debe ser un valor booleano" #: common/models.py:419 msgid "Value must be an integer value" -msgstr "" +msgstr "El valor debe ser un entero" #: common/models.py:442 msgid "Key string must be unique" -msgstr "" +msgstr "Cadena de clave debe ser única" #: common/models.py:561 msgid "No group" -msgstr "" +msgstr "Sin grupo" #: common/models.py:603 msgid "Restart required" -msgstr "" +msgstr "Reinicio requerido" #: common/models.py:604 msgid "A setting has been changed which requires a server restart" -msgstr "" +msgstr "Se ha cambiado una configuración que requiere un reinicio del servidor" #: common/models.py:611 msgid "InvenTree Instance Name" -msgstr "" +msgstr "Nombre de Instancia de InvenTree" #: common/models.py:613 msgid "String descriptor for the server instance" -msgstr "" +msgstr "Descriptor de cadena para la instancia del servidor" #: common/models.py:617 msgid "Use instance name" -msgstr "" +msgstr "Usar nombre de instancia" #: common/models.py:618 msgid "Use the instance name in the title-bar" -msgstr "" +msgstr "Utilice el nombre de la instancia en la barra de título" #: common/models.py:624 company/models.py:100 company/models.py:101 msgid "Company name" -msgstr "" +msgstr "Nombre de empresa" #: common/models.py:625 msgid "Internal company name" -msgstr "" +msgstr "Nombre interno de empresa" #: common/models.py:630 msgid "Base URL" -msgstr "" +msgstr "URL Base" #: common/models.py:631 msgid "Base URL for server instance" -msgstr "" +msgstr "URL base para la instancia del servidor" #: common/models.py:637 msgid "Default Currency" -msgstr "" +msgstr "Moneda predeterminada" #: common/models.py:638 msgid "Default currency" -msgstr "" +msgstr "Moneda predeterminada" #: common/models.py:644 msgid "Download from URL" -msgstr "" +msgstr "Descargar desde URL" #: common/models.py:645 msgid "Allow download of remote images and files from external URL" -msgstr "" +msgstr "Permitir la descarga de imágenes y archivos remotos desde la URL externa" #: common/models.py:651 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" -msgstr "" +msgstr "Soporte de código de barras" #: common/models.py:652 msgid "Enable barcode scanner support" -msgstr "" +msgstr "Habilitar soporte para escáner de código de barras" #: common/models.py:658 msgid "IPN Regex" -msgstr "" +msgstr "Regex IPN" #: common/models.py:659 msgid "Regular expression pattern for matching Part IPN" -msgstr "" +msgstr "Patrón de expresión regular para IPN de la parte coincidente" #: common/models.py:663 msgid "Allow Duplicate IPN" -msgstr "" +msgstr "Permitir IPN duplicado" #: common/models.py:664 msgid "Allow multiple parts to share the same IPN" -msgstr "" +msgstr "Permitir que varias partes compartan el mismo IPN" #: common/models.py:670 msgid "Allow Editing IPN" -msgstr "" +msgstr "Permitir editar IPN" #: common/models.py:671 msgid "Allow changing the IPN value while editing a part" -msgstr "" +msgstr "Permite cambiar el valor de IPN mientras se edita una pieza" #: common/models.py:677 msgid "Copy Part BOM Data" -msgstr "" +msgstr "Copiar parte de datos BOM" #: common/models.py:678 msgid "Copy BOM data by default when duplicating a part" -msgstr "" +msgstr "Copiar datos BOM por defecto al duplicar una parte" #: common/models.py:684 msgid "Copy Part Parameter Data" -msgstr "" +msgstr "Copiar Parámetros de Pieza" #: common/models.py:685 msgid "Copy parameter data by default when duplicating a part" -msgstr "" +msgstr "Copiar datos de parámetro por defecto al duplicar una parte" #: common/models.py:691 msgid "Copy Part Test Data" -msgstr "" +msgstr "Copiar parte de datos de prueba" #: common/models.py:692 msgid "Copy test data by default when duplicating a part" -msgstr "" +msgstr "Copiar datos de parámetro por defecto al duplicar una parte" #: common/models.py:698 msgid "Copy Category Parameter Templates" -msgstr "" +msgstr "Copiar plantillas de parámetros de categoría" #: common/models.py:699 msgid "Copy category parameter templates when creating a part" -msgstr "" +msgstr "Copiar plantillas de parámetros de categoría al crear una parte" #: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:417 msgid "Template" -msgstr "" +msgstr "Plantilla" #: common/models.py:706 msgid "Parts are templates by default" -msgstr "" +msgstr "Las piezas son plantillas por defecto" #: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:429 msgid "Assembly" -msgstr "" +msgstr "Montaje" #: common/models.py:713 msgid "Parts can be assembled from other components by default" -msgstr "" +msgstr "Las piezas pueden ser ensambladas desde otros componentes por defecto" #: common/models.py:719 part/models.py:957 #: templates/js/translated/table_filters.js:433 msgid "Component" -msgstr "" +msgstr "Componente" #: common/models.py:720 msgid "Parts can be used as sub-components by default" -msgstr "" +msgstr "Las piezas pueden ser usadas como subcomponentes por defecto" #: common/models.py:726 part/models.py:968 msgid "Purchaseable" -msgstr "" +msgstr "Comprable" #: common/models.py:727 msgid "Parts are purchaseable by default" -msgstr "" +msgstr "Las piezas son comprables por defecto" #: common/models.py:733 part/models.py:973 #: templates/js/translated/table_filters.js:441 msgid "Salable" -msgstr "" +msgstr "Vendible" #: common/models.py:734 msgid "Parts are salable by default" -msgstr "" +msgstr "Las piezas se pueden vender por defecto" #: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 #: templates/js/translated/table_filters.js:445 msgid "Trackable" -msgstr "" +msgstr "Rastreable" #: common/models.py:741 msgid "Parts are trackable by default" -msgstr "" +msgstr "Las piezas son rastreables por defecto" #: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" -msgstr "" +msgstr "Virtual" #: common/models.py:748 msgid "Parts are virtual by default" -msgstr "" +msgstr "Las piezas son virtuales por defecto" #: common/models.py:754 msgid "Show Import in Views" -msgstr "" +msgstr "Mostrar importación en vistas" #: common/models.py:755 msgid "Display the import wizard in some part views" -msgstr "" +msgstr "Mostrar el asistente de importación en algunas vistas de partes" #: common/models.py:761 msgid "Show Price in Forms" -msgstr "" +msgstr "Mostrar precio en formularios" #: common/models.py:762 msgid "Display part price in some forms" -msgstr "" +msgstr "Mostrar precio de la pieza en algunos formularios" #: common/models.py:773 msgid "Show Price in BOM" -msgstr "" +msgstr "Mostrar precio en BOM" #: common/models.py:774 msgid "Include pricing information in BOM tables" -msgstr "" +msgstr "Incluye información de precios en tablas BOM" #: common/models.py:785 msgid "Show Price History" -msgstr "" +msgstr "Mostrar Historial de Precios" #: common/models.py:786 msgid "Display historical pricing for Part" -msgstr "" +msgstr "Mostrar el precio histórico de la parte" #: common/models.py:792 msgid "Show related parts" -msgstr "" +msgstr "Mostrar piezas relacionadas" #: common/models.py:793 msgid "Display related parts for a part" -msgstr "" +msgstr "Mostrar partes relacionadas para una pieza" #: common/models.py:799 msgid "Create initial stock" -msgstr "" +msgstr "Crear stock inicial" #: common/models.py:800 msgid "Create initial stock on part creation" -msgstr "" +msgstr "Crear stock inicial en la creación de partes" #: common/models.py:806 msgid "Internal Prices" -msgstr "" +msgstr "Precios internos" #: common/models.py:807 msgid "Enable internal prices for parts" -msgstr "" +msgstr "Habilitar precios internos para piezas" #: common/models.py:813 msgid "Internal Price as BOM-Price" -msgstr "" +msgstr "Precio interno como precio de BOM" #: common/models.py:814 msgid "Use the internal price (if set) in BOM-price calculations" -msgstr "" +msgstr "Usar el precio interno (si está establecido) en los cálculos de precios BOM" #: common/models.py:820 msgid "Part Name Display Format" -msgstr "" +msgstr "Formato de visualización de Nombre de Parte" #: common/models.py:821 msgid "Format to display the part name" -msgstr "" +msgstr "Formato para mostrar el nombre de la pieza" #: common/models.py:828 msgid "Enable Reports" -msgstr "" +msgstr "Habilitar informes" #: common/models.py:829 msgid "Enable generation of reports" -msgstr "" +msgstr "Habilitar generación de informes" #: common/models.py:835 templates/stats.html:25 msgid "Debug Mode" -msgstr "" +msgstr "Modo de depuración" #: common/models.py:836 msgid "Generate reports in debug mode (HTML output)" -msgstr "" +msgstr "Generar informes en modo de depuración (salida HTML)" #: common/models.py:842 msgid "Page Size" -msgstr "" +msgstr "Tamaño de página" #: common/models.py:843 msgid "Default page size for PDF reports" -msgstr "" +msgstr "Tamaño de página predeterminado para informes PDF" #: common/models.py:853 msgid "Test Reports" -msgstr "" +msgstr "Informe de prueba" #: common/models.py:854 msgid "Enable generation of test reports" -msgstr "" +msgstr "Habilitar generación de informes de prueba" #: common/models.py:860 msgid "Stock Expiry" -msgstr "" +msgstr "Expiración de stock" #: common/models.py:861 msgid "Enable stock expiry functionality" -msgstr "" +msgstr "Habilitar la funcionalidad de expiración de stock" #: common/models.py:867 msgid "Sell Expired Stock" -msgstr "" +msgstr "Vender existencias caducadas" #: common/models.py:868 msgid "Allow sale of expired stock" -msgstr "" +msgstr "Permitir venta de existencias caducadas" #: common/models.py:874 msgid "Stock Stale Time" -msgstr "" +msgstr "Tiempo histórico de Stock" #: common/models.py:875 msgid "Number of days stock items are considered stale before expiring" -msgstr "Número de días en que artículos de stock se consideran obsoletos antes de caducar" +msgstr "Número de días de artículos de stock se consideran obsoletos antes de caducar" #: common/models.py:877 msgid "days" -msgstr "" +msgstr "días" #: common/models.py:882 msgid "Build Expired Stock" -msgstr "" +msgstr "Crear Stock Caducado" #: common/models.py:883 msgid "Allow building with expired stock" -msgstr "" +msgstr "Permitir crear con stock caducado" #: common/models.py:889 msgid "Stock Ownership Control" -msgstr "" +msgstr "Control de Stock" #: common/models.py:890 msgid "Enable ownership control over stock locations and items" @@ -1869,195 +1873,195 @@ msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos" #: common/models.py:896 msgid "Build Order Reference Prefix" -msgstr "" +msgstr "Prefijo de Referencia de Orden de Trabajo" #: common/models.py:897 msgid "Prefix value for build order reference" -msgstr "" +msgstr "Valor de prefijo para referencia de la orden de trabajo" #: common/models.py:902 msgid "Build Order Reference Regex" -msgstr "" +msgstr "Regex de Referencia de Orden de Trabajo" #: common/models.py:903 msgid "Regular expression pattern for matching build order reference" -msgstr "" +msgstr "Patrón de expresión regular para referencia de orden de trabajo coincidente" #: common/models.py:907 msgid "Sales Order Reference Prefix" -msgstr "" +msgstr "Prefijo de referencia de pedido de venta" #: common/models.py:908 msgid "Prefix value for sales order reference" -msgstr "" +msgstr "Valor del prefijo para referencia del pedido de venta" #: common/models.py:913 msgid "Purchase Order Reference Prefix" -msgstr "" +msgstr "Prefijo de orden de compra" #: common/models.py:914 msgid "Prefix value for purchase order reference" -msgstr "" +msgstr "Valor del prefijo para referencia de la orden de compra" #: common/models.py:920 msgid "Enable password forgot" -msgstr "" +msgstr "Habilitar función de contraseña olvidada" #: common/models.py:921 msgid "Enable password forgot function on the login pages" -msgstr "" +msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión" #: common/models.py:926 msgid "Enable registration" -msgstr "" +msgstr "Habilitar registro" #: common/models.py:927 msgid "Enable self-registration for users on the login pages" -msgstr "" +msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión" #: common/models.py:932 msgid "Enable SSO" -msgstr "" +msgstr "Habilitar SSO" #: common/models.py:933 msgid "Enable SSO on the login pages" -msgstr "" +msgstr "Habilitar SSO en las páginas de inicio de sesión" #: common/models.py:938 msgid "Email required" -msgstr "" +msgstr "Email requerido" #: common/models.py:939 msgid "Require user to supply mail on signup" -msgstr "" +msgstr "Requiere usuario para suministrar correo al registrarse" #: common/models.py:944 msgid "Auto-fill SSO users" -msgstr "" +msgstr "Auto-rellenar usuarios SSO" #: common/models.py:945 msgid "Automatically fill out user-details from SSO account-data" -msgstr "" +msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO" #: common/models.py:950 msgid "Mail twice" -msgstr "" +msgstr "Correo dos veces" #: common/models.py:951 msgid "On signup ask users twice for their mail" -msgstr "" +msgstr "Al registrarse pregunte dos veces a los usuarios por su correo" #: common/models.py:956 msgid "Password twice" -msgstr "" +msgstr "Contraseña dos veces" #: common/models.py:957 msgid "On signup ask users twice for their password" -msgstr "" +msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña" #: common/models.py:962 msgid "Group on signup" -msgstr "" +msgstr "Grupo al registrarse" #: common/models.py:963 msgid "Group to which new users are assigned on registration" -msgstr "" +msgstr "Grupo al que se asignan nuevos usuarios al registrarse" #: common/models.py:968 msgid "Enforce MFA" -msgstr "" +msgstr "Forzar MFA" #: common/models.py:969 msgid "Users must use multifactor security." -msgstr "" +msgstr "Los usuarios deben utilizar seguridad multifactor." #: common/models.py:976 msgid "Enable URL integration" -msgstr "" +msgstr "Habilitar integración de URL" #: common/models.py:977 msgid "Enable plugins to add URL routes" -msgstr "" +msgstr "Habilitar plugins para añadir rutas de URL" #: common/models.py:983 msgid "Enable navigation integration" -msgstr "" +msgstr "Habilitar integración de navegación" #: common/models.py:984 msgid "Enable plugins to integrate into navigation" -msgstr "" +msgstr "Habilitar plugins para integrar en la navegación" #: common/models.py:990 msgid "Enable app integration" -msgstr "" +msgstr "Habilitar integración de la aplicación" #: common/models.py:991 msgid "Enable plugins to add apps" -msgstr "" +msgstr "Habilitar plugins para añadir aplicaciones" #: common/models.py:997 msgid "Enable schedule integration" -msgstr "" +msgstr "Habilitar integración de programación" #: common/models.py:998 msgid "Enable plugins to run scheduled tasks" -msgstr "" +msgstr "Habilitar plugins para ejecutar tareas programadas" #: common/models.py:1004 msgid "Enable event integration" -msgstr "" +msgstr "Habilitar integración de eventos" #: common/models.py:1005 msgid "Enable plugins to respond to internal events" -msgstr "" +msgstr "Habilitar plugins para responder a eventos internos" #: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" -msgstr "" +msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas" #: common/models.py:1051 msgid "Show subscribed parts" -msgstr "" +msgstr "Mostrar partes suscritas" #: common/models.py:1052 msgid "Show subscribed parts on the homepage" -msgstr "" +msgstr "Mostrar las partes suscritas en la página principal" #: common/models.py:1057 msgid "Show subscribed categories" -msgstr "" +msgstr "Mostrar categorías suscritas" #: common/models.py:1058 msgid "Show subscribed part categories on the homepage" -msgstr "" +msgstr "Mostrar categorías de partes suscritas en la página de inicio" #: common/models.py:1063 msgid "Show latest parts" -msgstr "" +msgstr "Mostrar últimas partes" #: common/models.py:1064 msgid "Show latest parts on the homepage" -msgstr "" +msgstr "Mostrar las últimas partes en la página de inicio" #: common/models.py:1069 msgid "Recent Part Count" -msgstr "" +msgstr "Conteo de Partes Recientes" #: common/models.py:1070 msgid "Number of recent parts to display on index page" -msgstr "" +msgstr "Número de partes recientes a mostrar en la página de índice" #: common/models.py:1076 msgid "Show unvalidated BOMs" -msgstr "" +msgstr "Mostrar BOMs no validadas" #: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" -msgstr "" +msgstr "Mostrar BOMs que esperan validación en la página de inicio" #: common/models.py:1082 msgid "Show recent stock changes" -msgstr "" +msgstr "Mostrar cambios recientes de stock" #: common/models.py:1083 msgid "Show recently changed stock items on the homepage" @@ -2065,7 +2069,7 @@ msgstr "Mostrar artículos de stock recientemente modificados en la página de i #: common/models.py:1088 msgid "Recent Stock Count" -msgstr "" +msgstr "Conteo Reciente de Stock" #: common/models.py:1089 msgid "Number of recent stock items to display on index page" @@ -2073,7 +2077,7 @@ msgstr "Número de elementos de stock recientes a mostrar en la página de índi #: common/models.py:1094 msgid "Show low stock" -msgstr "" +msgstr "Mostrar stock bajo" #: common/models.py:1095 msgid "Show low stock items on the homepage" @@ -2081,7 +2085,7 @@ msgstr "Mostrar artículos de stock bajo en la página de inicio" #: common/models.py:1100 msgid "Show depleted stock" -msgstr "" +msgstr "Mostrar stock agotado" #: common/models.py:1101 msgid "Show depleted stock items on the homepage" @@ -2089,15 +2093,15 @@ msgstr "Mostrar artículos agotados en la página de inicio" #: common/models.py:1106 msgid "Show needed stock" -msgstr "" +msgstr "Mostrar stock necesario" #: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" -msgstr "Mostrar elementos de stock necesarios para construir en la página de inicio" +msgstr "Mostrar elementos de stock necesarios para trabajos en la página de inicio" #: common/models.py:1112 msgid "Show expired stock" -msgstr "" +msgstr "Mostrar stock caducado" #: common/models.py:1113 msgid "Show expired stock items on the homepage" @@ -2105,7 +2109,7 @@ msgstr "Mostrar artículos de stock caducados en la página de inicio" #: common/models.py:1118 msgid "Show stale stock" -msgstr "" +msgstr "Mostrar stock obsoleto" #: common/models.py:1119 msgid "Show stale stock items on the homepage" @@ -2113,141 +2117,141 @@ msgstr "Mostrar elementos de stock obsoletos en la página de inicio" #: common/models.py:1124 msgid "Show pending builds" -msgstr "" +msgstr "Mostrar trabajos pendientes" #: common/models.py:1125 msgid "Show pending builds on the homepage" -msgstr "" +msgstr "Mostrar trabajos pendientes en la página de inicio" #: common/models.py:1130 msgid "Show overdue builds" -msgstr "" +msgstr "Mostrar trabajos vencidos" #: common/models.py:1131 msgid "Show overdue builds on the homepage" -msgstr "" +msgstr "Mostrar trabajos pendientes en la página de inicio" #: common/models.py:1136 msgid "Show outstanding POs" -msgstr "" +msgstr "Mostrar Órdenes de Compra Pendientes" #: common/models.py:1137 msgid "Show outstanding POs on the homepage" -msgstr "" +msgstr "Mostrar las OC destacadas en la página de inicio" #: common/models.py:1142 msgid "Show overdue POs" -msgstr "" +msgstr "Mostrar OC atrasadas" #: common/models.py:1143 msgid "Show overdue POs on the homepage" -msgstr "" +msgstr "Mostrar las OC vencidas en la página de inicio" #: common/models.py:1148 msgid "Show outstanding SOs" -msgstr "" +msgstr "Mostrar OV pendiemtes" #: common/models.py:1149 msgid "Show outstanding SOs on the homepage" -msgstr "" +msgstr "Mostrar OV pendientes en la página de inicio" #: common/models.py:1154 msgid "Show overdue SOs" -msgstr "" +msgstr "Mostrar OV atrasadas" #: common/models.py:1155 msgid "Show overdue SOs on the homepage" -msgstr "" +msgstr "Mostrar OV atrasadas en la página de inicio" #: common/models.py:1161 msgid "Inline label display" -msgstr "" +msgstr "Mostrar etiqueta interior" #: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" +msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo" #: common/models.py:1168 msgid "Inline report display" -msgstr "" +msgstr "Mostrar informe en línea" #: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" +msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo" #: common/models.py:1175 msgid "Search Preview Results" -msgstr "" +msgstr "Resultados de la vista previa" #: common/models.py:1176 msgid "Number of results to show in search preview window" -msgstr "" +msgstr "Número de resultados a mostrar en la ventana de vista previa de búsqueda" #: common/models.py:1182 msgid "Search Show Stock" -msgstr "" +msgstr "Buscar Mostrar Stock" #: common/models.py:1183 msgid "Display stock levels in search preview window" -msgstr "" +msgstr "Mostrar niveles de stock en la ventana de vista previa de búsqueda" #: common/models.py:1189 msgid "Hide Inactive Parts" -msgstr "" +msgstr "Ocultar Partes Inactivas" #: common/models.py:1190 msgid "Hide inactive parts in search preview window" -msgstr "" +msgstr "Ocultar partes inactivas en la ventana de vista previa de búsqueda" #: common/models.py:1196 msgid "Show Quantity in Forms" -msgstr "" +msgstr "Mostrar cantidad en formularios" #: common/models.py:1197 msgid "Display available part quantity in some forms" -msgstr "" +msgstr "Mostrar la cantidad de piezas disponibles en algunos formularios" #: common/models.py:1203 msgid "Escape Key Closes Forms" -msgstr "" +msgstr "Formularios de cierre de teclas de escape" #: common/models.py:1204 msgid "Use the escape key to close modal forms" -msgstr "" +msgstr "Usa la clave de escape para cerrar formularios modales" #: common/models.py:1210 msgid "Fixed Navbar" -msgstr "" +msgstr "Barra de navegación fija" #: common/models.py:1211 msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" +msgstr "La posición de la barra de navegación de InvenTree se fija en la parte superior de la pantalla" #: common/models.py:1276 company/forms.py:43 msgid "Price break quantity" -msgstr "" +msgstr "Cantidad de salto de precio" #: common/models.py:1283 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 #: templates/js/translated/part.js:915 templates/js/translated/part.js:1867 msgid "Price" -msgstr "" +msgstr "Precio" #: common/models.py:1284 msgid "Unit price at specified quantity" -msgstr "" +msgstr "Precio unitario a la cantidad especificada" #: common/models.py:1441 common/models.py:1580 msgid "Endpoint" -msgstr "" +msgstr "Endpoint" #: common/models.py:1442 msgid "Endpoint at which this webhook is received" -msgstr "" +msgstr "Punto final en el que se recibe este webhook" #: common/models.py:1451 msgid "Name for this webhook" -msgstr "" +msgstr "Nombre para este webhook" #: common/models.py:1456 part/models.py:978 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 @@ -2255,97 +2259,97 @@ msgstr "" #: templates/js/translated/table_filters.js:290 #: templates/js/translated/table_filters.js:412 msgid "Active" -msgstr "" +msgstr "Activo" #: common/models.py:1457 msgid "Is this webhook active" -msgstr "" +msgstr "Está activo este webhook" #: common/models.py:1471 msgid "Token" -msgstr "" +msgstr "Token" #: common/models.py:1472 msgid "Token for access" -msgstr "" +msgstr "Token para el acceso" #: common/models.py:1479 msgid "Secret" -msgstr "" +msgstr "Clave" #: common/models.py:1480 msgid "Shared secret for HMAC" -msgstr "" +msgstr "Secreto compartido para HMAC" #: common/models.py:1547 msgid "Message ID" -msgstr "" +msgstr "ID de mensaje" #: common/models.py:1548 msgid "Unique identifier for this message" -msgstr "" +msgstr "Identificador único para este mensaje" #: common/models.py:1556 msgid "Host" -msgstr "" +msgstr "Host" #: common/models.py:1557 msgid "Host from which this message was received" -msgstr "" +msgstr "Servidor desde el cual se recibió este mensaje" #: common/models.py:1564 msgid "Header" -msgstr "" +msgstr "Encabezado" #: common/models.py:1565 msgid "Header of this message" -msgstr "" +msgstr "Encabezado del mensaje" #: common/models.py:1571 msgid "Body" -msgstr "" +msgstr "Cuerpo" #: common/models.py:1572 msgid "Body of this message" -msgstr "" +msgstr "Cuerpo de este mensaje" #: common/models.py:1581 msgid "Endpoint on which this message was received" -msgstr "" +msgstr "Endpoint en el que se recibió este mensaje" #: common/models.py:1586 msgid "Worked on" -msgstr "" +msgstr "Trabajado en" #: common/models.py:1587 msgid "Was the work on this message finished?" -msgstr "" +msgstr "¿El trabajo en este mensaje ha terminado?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 #: order/templates/order/purchase_order_detail.html:24 order/views.py:243 #: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 #: templates/patterns/wizard/upload.html:35 msgid "Upload File" -msgstr "" +msgstr "Subir Archivo" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" -msgstr "" +msgstr "Coincidir Campos" #: common/views.py:95 msgid "Match Items" -msgstr "Coincidir artículos" +msgstr "Coincidir elementos" #: common/views.py:440 msgid "Fields matching failed" -msgstr "" +msgstr "Falló la coincidencia de campos" #: common/views.py:495 msgid "Parts imported" -msgstr "" +msgstr "Partes importadas" #: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 @@ -2355,79 +2359,79 @@ msgstr "" #: templates/patterns/wizard/match_fields.html:26 #: templates/patterns/wizard/upload.html:33 msgid "Previous Step" -msgstr "" +msgstr "Paso anterior" #: company/forms.py:24 part/forms.py:46 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" -msgstr "" +msgstr "URL" #: company/forms.py:25 part/forms.py:47 msgid "Image URL" -msgstr "" +msgstr "URL de la imágen" #: company/models.py:105 msgid "Company description" -msgstr "" +msgstr "Descripción de la compañía" #: company/models.py:106 msgid "Description of the company" -msgstr "" +msgstr "Descripción de la empresa" #: company/models.py:112 company/templates/company/company_base.html:97 #: templates/InvenTree/settings/plugin_settings.html:55 #: templates/js/translated/company.js:349 msgid "Website" -msgstr "" +msgstr "Página web" #: company/models.py:113 msgid "Company website URL" -msgstr "" +msgstr "URL del sitio web de la empresa" #: company/models.py:117 company/templates/company/company_base.html:115 msgid "Address" -msgstr "" +msgstr "Dirección" #: company/models.py:118 msgid "Company address" -msgstr "" +msgstr "Dirección de la empresa" #: company/models.py:121 msgid "Phone number" -msgstr "" +msgstr "Teléfono" #: company/models.py:122 msgid "Contact phone number" -msgstr "" +msgstr "Teléfono de contacto" #: company/models.py:125 company/templates/company/company_base.html:129 #: templates/InvenTree/settings/user.html:48 msgid "Email" -msgstr "" +msgstr "Email" #: company/models.py:125 msgid "Contact email address" -msgstr "" +msgstr "Correo electrónico de contacto" #: company/models.py:128 company/templates/company/company_base.html:136 msgid "Contact" -msgstr "" +msgstr "Contacto" #: company/models.py:129 msgid "Point of contact" -msgstr "" +msgstr "Punto de contacto" #: company/models.py:131 msgid "Link to external company information" -msgstr "" +msgstr "Enlace a información externa de la empresa" #: company/models.py:139 part/models.py:870 msgid "Image" -msgstr "" +msgstr "Imágen" #: company/models.py:144 msgid "is customer" -msgstr "" +msgstr "es cliente" #: company/models.py:144 msgid "Do you sell items to this company?" @@ -2435,7 +2439,7 @@ msgstr "¿Vendes artículos a esta empresa?" #: company/models.py:146 msgid "is supplier" -msgstr "" +msgstr "es proveedor" #: company/models.py:146 msgid "Do you purchase items from this company?" @@ -2443,29 +2447,29 @@ msgstr "¿Compras artículos de esta empresa?" #: company/models.py:148 msgid "is manufacturer" -msgstr "" +msgstr "es fabricante" #: company/models.py:148 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "¿Esta empresa fabrica piezas?" #: company/models.py:152 company/serializers.py:270 #: company/templates/company/company_base.html:103 stock/serializers.py:179 msgid "Currency" -msgstr "" +msgstr "Moneda" #: company/models.py:155 msgid "Default currency used for this company" -msgstr "" +msgstr "Moneda predeterminada utilizada para esta empresa" #: company/models.py:320 company/models.py:535 stock/models.py:471 #: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" -msgstr "" +msgstr "Parte base" #: company/models.py:324 company/models.py:539 msgid "Select part" -msgstr "" +msgstr "Seleccionar pieza" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 @@ -2476,11 +2480,11 @@ msgstr "" #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 #: templates/js/translated/table_filters.js:384 msgid "Manufacturer" -msgstr "" +msgstr "Fabricante" #: company/models.py:336 templates/js/translated/part.js:235 msgid "Select manufacturer" -msgstr "" +msgstr "Seleccionar fabricante" #: company/models.py:342 company/templates/company/manufacturer_part.html:96 #: company/templates/company/supplier_part.html:105 @@ -2488,56 +2492,56 @@ msgstr "" #: templates/js/translated/company.js:818 templates/js/translated/order.js:1038 #: templates/js/translated/part.js:245 templates/js/translated/part.js:895 msgid "MPN" -msgstr "" +msgstr "MPN" #: company/models.py:343 templates/js/translated/part.js:246 msgid "Manufacturer Part Number" -msgstr "" +msgstr "Número de Parte del Fabricante" #: company/models.py:349 msgid "URL for external manufacturer part link" -msgstr "" +msgstr "URL para el enlace de parte del fabricante externo" #: company/models.py:355 msgid "Manufacturer part description" -msgstr "" +msgstr "Descripción de la parte del fabricante" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" -msgstr "" +msgstr "Parte del fabricante" #: company/models.py:416 msgid "Parameter name" -msgstr "" +msgstr "Nombre del parámetro" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 #: stock/models.py:1988 templates/js/translated/company.js:647 #: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" -msgstr "" +msgstr "Valor" #: company/models.py:423 msgid "Parameter value" -msgstr "" +msgstr "Valor del parámetro" #: company/models.py:429 part/models.py:945 part/models.py:2493 #: part/templates/part/part_base.html:288 #: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" -msgstr "" +msgstr "Unidades" #: company/models.py:430 msgid "Parameter units" -msgstr "" +msgstr "Unidades de parámetro" #: company/models.py:502 msgid "Linked manufacturer part must reference the same base part" -msgstr "" +msgstr "La parte vinculada del fabricante debe hacer referencia a la misma pieza base" #: company/models.py:545 company/templates/company/company_base.html:78 #: company/templates/company/supplier_part.html:87 order/models.py:227 @@ -2549,117 +2553,117 @@ msgstr "" #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 #: templates/js/translated/table_filters.js:388 msgid "Supplier" -msgstr "" +msgstr "Proveedor" #: company/models.py:546 templates/js/translated/part.js:216 msgid "Select supplier" -msgstr "" +msgstr "Seleccionar proveedor" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025 #: templates/js/translated/part.js:226 templates/js/translated/part.js:881 msgid "SKU" -msgstr "" +msgstr "SKU" #: company/models.py:552 templates/js/translated/part.js:227 msgid "Supplier stock keeping unit" -msgstr "" +msgstr "Unidad de mantenimiento de stock de proveedores" #: company/models.py:559 msgid "Select manufacturer part" -msgstr "" +msgstr "Seleccionar parte del fabricante" #: company/models.py:565 msgid "URL for external supplier part link" -msgstr "" +msgstr "URL del enlace de parte del proveedor externo" #: company/models.py:571 msgid "Supplier part description" -msgstr "" +msgstr "Descripción de la parte del proveedor" #: company/models.py:576 company/templates/company/supplier_part.html:119 #: part/models.py:2717 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" -msgstr "" +msgstr "Nota" #: company/models.py:580 part/models.py:1817 msgid "base cost" -msgstr "" +msgstr "costo base" #: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" -msgstr "" +msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" #: company/models.py:582 company/templates/company/supplier_part.html:112 #: stock/models.py:495 stock/templates/stock/item_base.html:340 #: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" -msgstr "" +msgstr "Paquetes" #: company/models.py:582 msgid "Part packaging" -msgstr "" +msgstr "Embalaje de partes" #: company/models.py:584 part/models.py:1819 msgid "multiple" -msgstr "" +msgstr "múltiple" #: company/models.py:584 msgid "Order multiple" -msgstr "" +msgstr "Pedido múltiple" #: company/serializers.py:70 msgid "Default currency used for this supplier" -msgstr "" +msgstr "Moneda predeterminada utilizada para este proveedor" #: company/serializers.py:71 msgid "Currency Code" -msgstr "" +msgstr "Código de moneda" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 #: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" -msgstr "" +msgstr "Empresa" #: company/templates/company/company_base.html:22 #: templates/js/translated/order.js:279 msgid "Create Purchase Order" -msgstr "" +msgstr "Crear orden de compra" #: company/templates/company/company_base.html:26 msgid "Company actions" -msgstr "" +msgstr "Acciones de empresa" #: company/templates/company/company_base.html:31 msgid "Edit company information" -msgstr "" +msgstr "Editar datos de la empresa" #: company/templates/company/company_base.html:32 #: templates/js/translated/company.js:265 msgid "Edit Company" -msgstr "" +msgstr "Modificar Empresa" #: company/templates/company/company_base.html:36 msgid "Delete company" -msgstr "" +msgstr "Eliminar empresa" #: company/templates/company/company_base.html:37 #: company/templates/company/company_base.html:159 msgid "Delete Company" -msgstr "" +msgstr "Eliminar Empresa" #: company/templates/company/company_base.html:53 #: part/templates/part/part_thumb.html:12 msgid "Upload new image" -msgstr "" +msgstr "Cargar nueva imagen" #: company/templates/company/company_base.html:56 #: part/templates/part/part_thumb.html:14 msgid "Download image from URL" -msgstr "" +msgstr "Descargar desde URL" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 @@ -2669,37 +2673,37 @@ msgstr "" #: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:392 msgid "Customer" -msgstr "" +msgstr "Cliente" #: company/templates/company/company_base.html:108 msgid "Uses default currency" -msgstr "" +msgstr "Usa la moneda predeterminada" #: company/templates/company/company_base.html:122 msgid "Phone" -msgstr "" +msgstr "Teléfono" #: company/templates/company/company_base.html:205 #: part/templates/part/part_base.html:471 msgid "Upload Image" -msgstr "" +msgstr "Cargar Imagen" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" -msgstr "" +msgstr "Partes de Proveedor" #: company/templates/company/detail.html:19 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" -msgstr "" +msgstr "Crear nueva parte del proveedor" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:118 #: part/templates/part/detail.html:356 msgid "New Supplier Part" -msgstr "" +msgstr "Nueva Parte de Proveedor" #: company/templates/company/detail.html:32 #: company/templates/company/detail.html:79 @@ -2708,39 +2712,39 @@ msgstr "" #: part/templates/part/category.html:171 part/templates/part/detail.html:365 #: part/templates/part/detail.html:394 msgid "Options" -msgstr "" +msgstr "Opciones" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 #: part/templates/part/category.html:177 msgid "Order parts" -msgstr "" +msgstr "Piezas de pedido" #: company/templates/company/detail.html:42 #: company/templates/company/detail.html:89 msgid "Delete parts" -msgstr "" +msgstr "Eliminar partes" #: company/templates/company/detail.html:43 #: company/templates/company/detail.html:90 msgid "Delete Parts" -msgstr "" +msgstr "Eliminar Partes" #: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" -msgstr "" +msgstr "Partes del fabricante" #: company/templates/company/detail.html:66 msgid "Create new manufacturer part" -msgstr "" +msgstr "Crear nueva pieza de fabricante" #: company/templates/company/detail.html:67 part/templates/part/detail.html:384 msgid "New Manufacturer Part" -msgstr "" +msgstr "Nueva pieza de fabricante" #: company/templates/company/detail.html:107 msgid "Supplier Stock" -msgstr "" +msgstr "Stock del Proveedor" #: company/templates/company/detail.html:117 #: company/templates/company/sidebar.html:12 @@ -2753,17 +2757,17 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" -msgstr "" +msgstr "Ordenes de compra" #: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" -msgstr "" +msgstr "Crear nueva orden de compra" #: company/templates/company/detail.html:122 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" -msgstr "" +msgstr "Nueva orden de compra" #: company/templates/company/detail.html:143 #: company/templates/company/sidebar.html:20 @@ -2775,82 +2779,82 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" -msgstr "" +msgstr "Órdenes de venta" #: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" -msgstr "" +msgstr "Crear Orden de Venta" #: company/templates/company/detail.html:148 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" -msgstr "" +msgstr "Nueva orden de venta" #: company/templates/company/detail.html:168 #: templates/js/translated/build.js:1281 msgid "Assigned Stock" -msgstr "" +msgstr "Stock asignado" #: company/templates/company/detail.html:184 msgid "Company Notes" -msgstr "" +msgstr "Notas de la empresa" #: company/templates/company/detail.html:384 #: company/templates/company/manufacturer_part.html:215 #: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" -msgstr "" +msgstr "¿Eliminar piezas de proveedor?" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 #: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" -msgstr "" +msgstr "Se eliminarán todas las partes del proveedor seleccionadas" #: company/templates/company/index.html:8 msgid "Supplier List" -msgstr "" +msgstr "Listado de proveedores" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 #: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" -msgstr "" +msgstr "Fabricantes" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 #: part/templates/part/detail.html:88 part/templates/part/part_base.html:76 msgid "Order part" -msgstr "" +msgstr "Pedir ítem" #: company/templates/company/manufacturer_part.html:40 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" -msgstr "" +msgstr "Editar fabricante de la pieza" #: company/templates/company/manufacturer_part.html:44 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" -msgstr "" +msgstr "Eliminar fabricante de la pieza" #: company/templates/company/manufacturer_part.html:66 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" -msgstr "" +msgstr "Componente interno" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163 #: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" -msgstr "" +msgstr "Proveedores" #: company/templates/company/manufacturer_part.html:129 #: part/templates/part/detail.html:367 msgid "Delete supplier parts" -msgstr "" +msgstr "Eliminar partes del proveedor" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 @@ -2859,128 +2863,128 @@ msgstr "" #: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 #: users/models.py:217 msgid "Delete" -msgstr "" +msgstr "Eliminar" #: company/templates/company/manufacturer_part.html:143 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:17 #: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" -msgstr "" +msgstr "Parámetros" #: company/templates/company/manufacturer_part.html:147 #: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" -msgstr "" +msgstr "Nuevo parámetro" #: company/templates/company/manufacturer_part.html:158 msgid "Delete parameters" -msgstr "" +msgstr "Eliminar parámetro" #: company/templates/company/manufacturer_part.html:191 #: part/templates/part/detail.html:895 msgid "Add Parameter" -msgstr "" +msgstr "Añadir parámetro" #: company/templates/company/manufacturer_part.html:239 msgid "Selected parameters will be deleted" -msgstr "" +msgstr "Los parámetros seleccionados serán eliminados" #: company/templates/company/manufacturer_part.html:251 msgid "Delete Parameters" -msgstr "" +msgstr "Eliminar parámetros" #: company/templates/company/sidebar.html:6 msgid "Manufactured Parts" -msgstr "" +msgstr "Partes Manufacturadas" #: company/templates/company/sidebar.html:10 msgid "Supplied Parts" -msgstr "" +msgstr "Partes suministradas" #: company/templates/company/sidebar.html:16 msgid "Supplied Stock Items" -msgstr "Artículos de stock suministrados" +msgstr "Elementos de stock suministrados" #: company/templates/company/sidebar.html:22 msgid "Assigned Stock Items" -msgstr "Artículos de Stock Asignados" +msgstr "Elementos de Stock Asignados" #: company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 stock/models.py:479 #: stock/templates/stock/item_base.html:404 #: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" -msgstr "" +msgstr "Ítems de Proveedor" #: company/templates/company/supplier_part.html:38 #: templates/js/translated/company.js:863 msgid "Edit supplier part" -msgstr "" +msgstr "Editar proveedor" #: company/templates/company/supplier_part.html:42 #: templates/js/translated/company.js:864 msgid "Delete supplier part" -msgstr "" +msgstr "Eliminar ítem del proveedor" #: company/templates/company/supplier_part.html:138 #: company/templates/company/supplier_part_navbar.html:12 msgid "Supplier Part Stock" -msgstr "" +msgstr "Stock del Proveedor" #: company/templates/company/supplier_part.html:141 #: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" -msgstr "" +msgstr "Crear nuevo artículo de stock" #: company/templates/company/supplier_part.html:142 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 #: templates/js/translated/stock.js:369 msgid "New Stock Item" -msgstr "" +msgstr "Nuevo artículo de stock" #: company/templates/company/supplier_part.html:155 #: company/templates/company/supplier_part_navbar.html:19 msgid "Supplier Part Orders" -msgstr "" +msgstr "Pedidos de piezas al proveedor" #: company/templates/company/supplier_part.html:160 #: part/templates/part/detail.html:89 msgid "Order Part" -msgstr "" +msgstr "Pedir ítem" #: company/templates/company/supplier_part.html:179 #: part/templates/part/prices.html:7 msgid "Pricing Information" -msgstr "" +msgstr "Información de Precios" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:290 #: part/templates/part/prices.html:271 part/views.py:1319 msgid "Add Price Break" -msgstr "" +msgstr "Agregar descuento de precio" #: company/templates/company/supplier_part.html:210 msgid "No price break information found" -msgstr "" +msgstr "No se ha encontrado información de descuento de precios" #: company/templates/company/supplier_part.html:224 part/views.py:1381 msgid "Delete Price Break" -msgstr "" +msgstr "Eliminar precio de descuento" #: company/templates/company/supplier_part.html:238 part/views.py:1367 msgid "Edit Price Break" -msgstr "" +msgstr "Editar precio de descuento" #: company/templates/company/supplier_part.html:263 msgid "Edit price break" -msgstr "" +msgstr "Editar precio de descuento" #: company/templates/company/supplier_part.html:264 msgid "Delete price break" -msgstr "" +msgstr "Eliminar precio de descuento" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:15 @@ -2993,21 +2997,21 @@ msgstr "" #: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 #: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" -msgstr "" +msgstr "Inventario" #: company/templates/company/supplier_part_navbar.html:22 msgid "Orders" -msgstr "" +msgstr "Pedidos" #: company/templates/company/supplier_part_navbar.html:26 #: company/templates/company/supplier_part_sidebar.html:9 msgid "Supplier Part Pricing" -msgstr "" +msgstr "Precio de pieza del proveedor" #: company/templates/company/supplier_part_navbar.html:29 #: part/templates/part/part_sidebar.html:30 msgid "Pricing" -msgstr "" +msgstr "Precios" #: company/templates/company/supplier_part_sidebar.html:5 #: stock/templates/stock/location.html:137 @@ -3017,204 +3021,204 @@ msgstr "" #: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" -msgstr "Artículos de Stock" +msgstr "Elementos de stock" #: company/views.py:50 msgid "New Supplier" -msgstr "" +msgstr "Nuevo Proveedor" #: company/views.py:56 msgid "New Manufacturer" -msgstr "" +msgstr "Nuevo Fabricante" #: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" -msgstr "" +msgstr "Clientes" #: company/views.py:62 msgid "New Customer" -msgstr "" +msgstr "Nuevo Cliente" #: company/views.py:69 msgid "Companies" -msgstr "" +msgstr "Empresas" #: company/views.py:70 msgid "New Company" -msgstr "" +msgstr "Nueva Compañía" #: company/views.py:129 part/views.py:591 msgid "Download Image" -msgstr "" +msgstr "Descargar imagen" #: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" -msgstr "" +msgstr "El tamaño de la imagen excede el tamaño máximo permitido para descargar" #: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" -msgstr "" +msgstr "Respuesta no válida: {code}" #: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" -msgstr "" +msgstr "La URL proporcionada no es un archivo de imagen válido" #: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" -msgstr "" +msgstr "No se han proporcionado objetos válidos a la plantilla" #: label/models.py:113 msgid "Label name" -msgstr "" +msgstr "Nombre etiqueta" #: label/models.py:120 msgid "Label description" -msgstr "" +msgstr "Descripción de etiqueta" #: label/models.py:127 msgid "Label" -msgstr "" +msgstr "Etiqueta" #: label/models.py:128 msgid "Label template file" -msgstr "" +msgstr "Archivo de plantilla de etiqueta" #: label/models.py:134 report/models.py:298 msgid "Enabled" -msgstr "" +msgstr "Habilitado" #: label/models.py:135 msgid "Label template is enabled" -msgstr "" +msgstr "Plantilla de etiqueta habilitada" #: label/models.py:140 msgid "Width [mm]" -msgstr "" +msgstr "Ancho [mm]" #: label/models.py:141 msgid "Label width, specified in mm" -msgstr "" +msgstr "Ancho de la etiqueta, especificado en mm" #: label/models.py:147 msgid "Height [mm]" -msgstr "" +msgstr "Altura [mm]" #: label/models.py:148 msgid "Label height, specified in mm" -msgstr "" +msgstr "Altura de la etiqueta, especificada en mm" #: label/models.py:154 report/models.py:291 msgid "Filename Pattern" -msgstr "" +msgstr "Patrón de Nombre de archivo" #: label/models.py:155 msgid "Pattern for generating label filenames" -msgstr "" +msgstr "Patrón para generar nombres de archivo de etiquetas" #: label/models.py:258 msgid "Query filters (comma-separated list of key=value pairs)," -msgstr "" +msgstr "Crear filtros de consulta (lista separada por comas de pares clave=valor)," #: label/models.py:259 label/models.py:319 label/models.py:366 #: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" -msgstr "" +msgstr "Filtros" #: label/models.py:318 msgid "Query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Crear filtros de consulta (lista separada por comas de pares clave=valor" #: label/models.py:365 msgid "Part query filters (comma-separated value of key=value pairs)" -msgstr "" +msgstr "Filtros de búsqueda de partes (valor separado por comas de pares clave=valor)" #: order/forms.py:24 order/templates/order/order_base.html:52 msgid "Place order" -msgstr "" +msgstr "Realizar pedido" #: order/forms.py:35 order/templates/order/order_base.html:60 msgid "Mark order as complete" -msgstr "" +msgstr "Marcar pedido como completado" #: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 #: order/templates/order/sales_order_base.html:60 msgid "Cancel order" -msgstr "" +msgstr "Cancelar orden" #: order/models.py:125 msgid "Order description" -msgstr "" +msgstr "Descripción del pedido" #: order/models.py:127 msgid "Link to external page" -msgstr "" +msgstr "Enlace a Url externa" #: order/models.py:135 msgid "Created By" -msgstr "" +msgstr "Creado por" #: order/models.py:142 msgid "User or group responsible for this order" -msgstr "" +msgstr "Usuario o grupo responsable de este pedido" #: order/models.py:147 msgid "Order notes" -msgstr "" +msgstr "Notas del pedido" #: order/models.py:214 order/models.py:542 msgid "Order reference" -msgstr "" +msgstr "Referencia del pedido" #: order/models.py:219 order/models.py:557 msgid "Purchase order status" -msgstr "" +msgstr "Estado de la orden de compra" #: order/models.py:228 msgid "Company from which the items are being ordered" -msgstr "Empresa de la que se están pidiendo los artículos" +msgstr "Compañía de la que se están encargando los artículos" #: order/models.py:231 order/templates/order/order_base.html:118 #: templates/js/translated/order.js:832 msgid "Supplier Reference" -msgstr "" +msgstr "Referencia del proveedor" #: order/models.py:231 msgid "Supplier order reference code" -msgstr "" +msgstr "Código de referencia de pedido del proveedor" #: order/models.py:238 msgid "received by" -msgstr "" +msgstr "recibido por" #: order/models.py:243 msgid "Issue Date" -msgstr "" +msgstr "Fecha de emisión" #: order/models.py:244 msgid "Date order was issued" -msgstr "" +msgstr "Fecha de expedición del pedido" #: order/models.py:249 msgid "Target Delivery Date" -msgstr "" +msgstr "Fecha de entrega objetivo" #: order/models.py:250 msgid "Expected date for order delivery. Order will be overdue after this date." -msgstr "" +msgstr "Fecha esperada para la entrega del pedido. El pedido se retrasará después de esta fecha." #: order/models.py:256 msgid "Date order was completed" -msgstr "" +msgstr "La fecha de pedido fue completada" #: order/models.py:285 msgid "Part supplier must match PO supplier" -msgstr "" +msgstr "El proveedor de la pieza debe coincidir con el proveedor de PO" #: order/models.py:420 msgid "Quantity must be a positive number" -msgstr "" +msgstr "La cantidad debe ser un número positivo" #: order/models.py:553 msgid "Company to which the items are being sold" @@ -3222,61 +3226,61 @@ msgstr "Empresa a la que se venden los artículos" #: order/models.py:559 msgid "Customer Reference " -msgstr "" +msgstr "Referencia del cliente " #: order/models.py:559 msgid "Customer order reference code" -msgstr "" +msgstr "Código de referencia de pedido del cliente" #: order/models.py:564 msgid "Target date for order completion. Order will be overdue after this date." -msgstr "" +msgstr "Fecha límite para la finalización del pedido. El pedido se retrasará después de esta fecha." #: order/models.py:567 order/models.py:1048 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" -msgstr "" +msgstr "Fecha de envío" #: order/models.py:574 msgid "shipped by" -msgstr "" +msgstr "enviado por" #: order/models.py:640 msgid "Order cannot be completed as no parts have been assigned" -msgstr "" +msgstr "El pedido no se puede completar porque no se han asignado partes" #: order/models.py:644 msgid "Only a pending order can be marked as complete" -msgstr "" +msgstr "Sólo una orden pendiente puede ser marcada como completa" #: order/models.py:647 msgid "Order cannot be completed as there are incomplete shipments" -msgstr "" +msgstr "El pedido no se puede completar porque hay envíos incompletos" #: order/models.py:650 msgid "Order cannot be completed as there are incomplete line items" -msgstr "" +msgstr "El pedido no se puede completar porque hay artículos de línea incompletos" #: order/models.py:806 msgid "Item quantity" -msgstr "" +msgstr "Cantidad del artículo" #: order/models.py:812 msgid "Line item reference" -msgstr "" +msgstr "Referencia de línea en la orden" #: order/models.py:814 msgid "Line item notes" -msgstr "" +msgstr "Notas del artículo de línea" #: order/models.py:842 msgid "Supplier part must match supplier" -msgstr "" +msgstr "La pieza del proveedor debe coincidir con el proveedor" #: order/models.py:855 order/models.py:946 order/models.py:1042 #: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395 msgid "Order" -msgstr "" +msgstr "Orden" #: order/models.py:856 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 @@ -3285,18 +3289,18 @@ msgstr "" #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 #: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" -msgstr "" +msgstr "Orden de compra" #: order/models.py:877 msgid "Supplier part" -msgstr "" +msgstr "Ítems de Proveedor" #: order/models.py:884 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 #: templates/js/translated/table_filters.js:312 msgid "Received" -msgstr "" +msgstr "Recibido" #: order/models.py:885 msgid "Number of items received" @@ -3306,133 +3310,133 @@ msgstr "Número de artículos recibidos" #: stock/serializers.py:170 stock/templates/stock/item_base.html:361 #: templates/js/translated/stock.js:1911 msgid "Purchase Price" -msgstr "" +msgstr "Precio de Compra" #: order/models.py:893 msgid "Unit purchase price" -msgstr "" +msgstr "Precio de compra unitario" #: order/models.py:901 msgid "Where does the Purchaser want this item to be stored?" -msgstr "" +msgstr "¿Dónde quiere el comprador almacenar este objeto?" #: order/models.py:956 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" -msgstr "" +msgstr "Precio de Venta" #: order/models.py:957 msgid "Unit sale price" -msgstr "" +msgstr "Precio de venta unitario" #: order/models.py:962 msgid "Shipped quantity" -msgstr "" +msgstr "Cantidad enviada" #: order/models.py:1049 msgid "Date of shipment" -msgstr "" +msgstr "Fecha del envío" #: order/models.py:1056 msgid "Checked By" -msgstr "" +msgstr "Revisado por" #: order/models.py:1057 msgid "User who checked this shipment" -msgstr "" +msgstr "Usuario que revisó este envío" #: order/models.py:1065 msgid "Shipment number" -msgstr "" +msgstr "Número de envío" #: order/models.py:1072 msgid "Shipment notes" -msgstr "" +msgstr "Nota de envío" #: order/models.py:1079 msgid "Tracking Number" -msgstr "" +msgstr "Número de Seguimiento" #: order/models.py:1080 msgid "Shipment tracking information" -msgstr "" +msgstr "Información de seguimiento del envío" #: order/models.py:1090 msgid "Shipment has already been sent" -msgstr "" +msgstr "El envío ya ha sido enviado" #: order/models.py:1093 msgid "Shipment has no allocated stock items" -msgstr "" +msgstr "El envío no tiene artículos de stock asignados" #: order/models.py:1171 order/models.py:1173 msgid "Stock item has not been assigned" -msgstr "" +msgstr "El artículo de stock no ha sido asignado" #: order/models.py:1177 msgid "Cannot allocate stock item to a line with a different part" -msgstr "" +msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente" #: order/models.py:1179 msgid "Cannot allocate stock to a line without a part" -msgstr "" +msgstr "No se puede asignar stock a una línea sin una pieza" #: order/models.py:1182 msgid "Allocation quantity cannot exceed stock quantity" -msgstr "" +msgstr "La cantidad de asignación no puede exceder la cantidad de stock" #: order/models.py:1186 msgid "StockItem is over-allocated" -msgstr "" +msgstr "Artículo de stock sobreasignado" #: order/models.py:1192 order/serializers.py:740 msgid "Quantity must be 1 for serialized stock item" -msgstr "" +msgstr "La cantidad debe ser 1 para el stock serializado" #: order/models.py:1195 msgid "Sales order does not match shipment" -msgstr "" +msgstr "La orden de venta no coincide con el envío" #: order/models.py:1196 msgid "Shipment does not match sales order" -msgstr "" +msgstr "El envío no coincide con el pedido de venta" #: order/models.py:1204 msgid "Line" -msgstr "" +msgstr "Línea" #: order/models.py:1212 order/serializers.py:831 order/serializers.py:959 #: templates/js/translated/model_renderers.js:285 msgid "Shipment" -msgstr "" +msgstr "Envío" #: order/models.py:1213 msgid "Sales order shipment reference" -msgstr "" +msgstr "Referencia del envío del pedido de venta" #: order/models.py:1225 msgid "Item" -msgstr "" +msgstr "Ítem" #: order/models.py:1226 msgid "Select stock item to allocate" -msgstr "" +msgstr "Seleccionar artículo de stock para asignar" #: order/models.py:1229 msgid "Enter stock allocation quantity" -msgstr "" +msgstr "Especificar la cantidad de asignación de stock" #: order/serializers.py:173 msgid "Purchase price currency" -msgstr "" +msgstr "Moneda del precio de compra" #: order/serializers.py:211 order/serializers.py:796 msgid "Line Item" -msgstr "" +msgstr "Artículo en línea" #: order/serializers.py:217 msgid "Line item does not match purchase order" -msgstr "" +msgstr "La línea del artículo no coincide con la orden de compra" #: order/serializers.py:227 order/serializers.py:295 msgid "Select destination location for received items" @@ -3440,87 +3444,87 @@ msgstr "Seleccione la ubicación de destino para los artículos recibidos" #: order/serializers.py:251 msgid "Barcode Hash" -msgstr "" +msgstr "Hash del Código de barras" #: order/serializers.py:252 msgid "Unique identifier field" -msgstr "" +msgstr "Identificador único" #: order/serializers.py:269 msgid "Barcode is already in use" -msgstr "" +msgstr "Código de barras en uso" #: order/serializers.py:307 msgid "Line items must be provided" -msgstr "Debe proporcionar elementos de línea" +msgstr "Se deben proporcionar elementos de línea" #: order/serializers.py:324 msgid "Destination location must be specified" -msgstr "" +msgstr "Se requiere ubicación de destino" #: order/serializers.py:335 msgid "Supplied barcode values must be unique" -msgstr "" +msgstr "Los valores del código de barras deben ser únicos" #: order/serializers.py:587 msgid "Sale price currency" -msgstr "" +msgstr "Moneda del precio de venta" #: order/serializers.py:655 msgid "No shipment details provided" -msgstr "" +msgstr "No se proporcionaron detalles de envío" #: order/serializers.py:705 order/serializers.py:808 msgid "Line item is not associated with this order" -msgstr "" +msgstr "Artículo en línea no está asociado con este pedido" #: order/serializers.py:727 msgid "Quantity must be positive" -msgstr "" +msgstr "La cantidad debe ser positiva" #: order/serializers.py:821 msgid "Enter serial numbers to allocate" -msgstr "" +msgstr "Introduzca números de serie para asignar" #: order/serializers.py:845 order/serializers.py:970 msgid "Shipment has already been shipped" -msgstr "" +msgstr "El envío ya ha sido enviado" #: order/serializers.py:848 order/serializers.py:973 msgid "Shipment is not associated with this order" -msgstr "" +msgstr "El envío no está asociado con este pedido" #: order/serializers.py:900 msgid "No match found for the following serial numbers" -msgstr "" +msgstr "No se han encontrado coincidencias para los siguientes números de serie" #: order/serializers.py:910 msgid "The following serial numbers are already allocated" -msgstr "" +msgstr "Los siguientes números de serie ya están asignados" #: order/templates/order/delete_attachment.html:5 #: stock/templates/stock/attachment_delete.html:5 msgid "Are you sure you want to delete this attachment?" -msgstr "" +msgstr "¿Está seguro que desea eliminar este archivo adjunto?" #: order/templates/order/order_base.html:33 msgid "Print purchase order report" -msgstr "" +msgstr "Imprimir informe de orden de compra" #: order/templates/order/order_base.html:35 #: order/templates/order/sales_order_base.html:45 msgid "Export order to file" -msgstr "" +msgstr "Exportar pedido a archivo" #: order/templates/order/order_base.html:41 #: order/templates/order/sales_order_base.html:54 msgid "Order actions" -msgstr "" +msgstr "Acciones de pedido" #: order/templates/order/order_base.html:45 #: order/templates/order/sales_order_base.html:58 msgid "Edit order" -msgstr "" +msgstr "Editar pedido" #: order/templates/order/order_base.html:56 msgid "Receive items" @@ -3529,48 +3533,48 @@ msgstr "Recibir artículos" #: order/templates/order/order_base.html:58 #: order/templates/order/purchase_order_detail.html:31 msgid "Receive Items" -msgstr "Recibir Artículos" +msgstr "Recibir artículos" #: order/templates/order/order_base.html:62 #: order/templates/order/sales_order_base.html:67 order/views.py:181 msgid "Complete Order" -msgstr "" +msgstr "Completar pedido" #: order/templates/order/order_base.html:84 #: order/templates/order/sales_order_base.html:79 msgid "Order Reference" -msgstr "" +msgstr "Referencia del pedido" #: order/templates/order/order_base.html:89 #: order/templates/order/sales_order_base.html:84 msgid "Order Description" -msgstr "" +msgstr "Descripción del pedido" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 #: templates/js/translated/stock.js:2451 msgid "Order Status" -msgstr "" +msgstr "Estado del pedido" #: order/templates/order/order_base.html:124 #: order/templates/order/sales_order_base.html:128 msgid "Completed Line Items" -msgstr "" +msgstr "Ítems de línea completados" #: order/templates/order/order_base.html:130 #: order/templates/order/sales_order_base.html:134 #: order/templates/order/sales_order_base.html:144 msgid "Incomplete" -msgstr "" +msgstr "Incompleto" #: order/templates/order/order_base.html:149 #: report/templates/report/inventree_build_order_base.html:122 msgid "Issued" -msgstr "" +msgstr "Emitido" #: order/templates/order/order_base.html:219 msgid "Edit Purchase Order" -msgstr "" +msgstr "Modificar orden de compra" #: order/templates/order/order_cancel.html:8 msgid "Cancelling this order means that the order and line items will no longer be editable." @@ -3578,7 +3582,7 @@ msgstr "Cancelar este pedido significa que la orden y los elementos de línea ya #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" -msgstr "" +msgstr "Marcar pedido como completado?" #: order/templates/order/order_complete.html:10 msgid "This order has line items which have not been marked as received." @@ -3596,24 +3600,24 @@ msgstr "Después de realizar esta orden de compra, los artículos de línea ya n #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" -msgstr "" +msgstr "Existen errores en los datos enviados" #: order/templates/order/order_wizard/match_parts.html:21 #: part/templates/part/import_wizard/match_fields.html:29 #: part/templates/part/import_wizard/match_references.html:21 #: templates/patterns/wizard/match_fields.html:28 msgid "Submit Selections" -msgstr "" +msgstr "Enviar selecciones" #: order/templates/order/order_wizard/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" -msgstr "" +msgstr "Fila" #: order/templates/order/order_wizard/match_parts.html:29 msgid "Select Supplier Part" -msgstr "" +msgstr "Seleccionar Parte de Proveedor" #: order/templates/order/order_wizard/match_parts.html:52 #: part/templates/part/import_wizard/ajax_match_fields.html:64 @@ -3626,15 +3630,15 @@ msgstr "" #: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" -msgstr "" +msgstr "Eliminar fila" #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" -msgstr "" +msgstr "Volver a Pedidos" #: order/templates/order/order_wizard/po_upload.html:17 msgid "Upload File for Purchase Order" -msgstr "" +msgstr "Subir archivo para orden de compra" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 @@ -3642,49 +3646,49 @@ msgstr "" #: templates/patterns/wizard/upload.html:11 #, python-format msgid "Step %(step)s of %(count)s" -msgstr "" +msgstr "Paso %(step)s de %(count)s" #: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." -msgstr "" +msgstr "El pedido ya ha sido procesado. Los archivos no se pueden cargar." #: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" -msgstr "" +msgstr "Paso 1 de 2 - Seleccionar Proveedores de Piezas" #: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" -msgstr "" +msgstr "Seleccionar proveedores" #: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" -msgstr "" +msgstr "Ninguna pieza comprable seleccionada" #: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" -msgstr "" +msgstr "Seleccionar Proveedor" #: order/templates/order/order_wizard/select_parts.html:57 msgid "No price" -msgstr "" +msgstr "Sin precio" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" -msgstr "" +msgstr "Seleccione un proveedor para %(name)s" #: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" -msgstr "" +msgstr "Eliminar parte" #: order/templates/order/order_wizard/select_pos.html:8 msgid "Step 2 of 2 - Select Purchase Orders" -msgstr "" +msgstr "Paso 2 de 2 - Seleccione las órdenes de compra" #: order/templates/order/order_wizard/select_pos.html:12 msgid "Select existing purchase orders, or create new orders." -msgstr "" +msgstr "Seleccione los pedidos de compra existentes, o cree nuevos pedidos." #: order/templates/order/order_wizard/select_pos.html:31 #: templates/js/translated/order.js:859 templates/js/translated/order.js:1286 @@ -3694,268 +3698,268 @@ msgstr "Artículos" #: order/templates/order/order_wizard/select_pos.html:32 msgid "Select Purchase Order" -msgstr "" +msgstr "Seleccionar Orden de Compra" #: order/templates/order/order_wizard/select_pos.html:45 #, python-format msgid "Create new purchase order for %(name)s" -msgstr "" +msgstr "Crear nueva orden de compra para %(name)s" #: order/templates/order/order_wizard/select_pos.html:68 #, python-format msgid "Select a purchase order for %(name)s" -msgstr "" +msgstr "Seleccione una orden de compra para %(name)s" #: order/templates/order/po_sidebar.html:5 #: order/templates/order/so_sidebar.html:5 #: report/templates/report/inventree_po_report.html:85 #: report/templates/report/inventree_so_report.html:85 msgid "Line Items" -msgstr "Artículos de Línea" +msgstr "Línea de pedido" #: order/templates/order/po_sidebar.html:7 msgid "Received Stock" -msgstr "" +msgstr "Stock Recibido" #: order/templates/order/purchase_order_detail.html:18 msgid "Purchase Order Items" -msgstr "Comprar Artículos de Orden" +msgstr "Comprar artículos de orden" #: order/templates/order/purchase_order_detail.html:27 #: order/templates/order/purchase_order_detail.html:181 #: order/templates/order/sales_order_detail.html:23 #: order/templates/order/sales_order_detail.html:244 msgid "Add Line Item" -msgstr "" +msgstr "Añadir artículo de línea" #: order/templates/order/purchase_order_detail.html:30 msgid "Receive selected items" -msgstr "Recibir artículos seleccionados" +msgstr "Recibir elementos seleccionados" #: order/templates/order/purchase_order_detail.html:50 msgid "Received Items" -msgstr "Artículos Recibidos" +msgstr "Articulos Recibidos" #: order/templates/order/purchase_order_detail.html:76 #: order/templates/order/sales_order_detail.html:123 msgid "Order Notes" -msgstr "" +msgstr "Notas del pedido" #: order/templates/order/purchase_orders.html:30 #: order/templates/order/sales_orders.html:33 msgid "Print Order Reports" -msgstr "" +msgstr "Imprimir informes de pedidos" #: order/templates/order/sales_order_base.html:43 msgid "Print sales order report" -msgstr "" +msgstr "Imprimir reporte de orden de venta" #: order/templates/order/sales_order_base.html:47 msgid "Print packing list" -msgstr "" +msgstr "Imprimir lista de empaquetado" #: order/templates/order/sales_order_base.html:66 #: order/templates/order/sales_order_base.html:229 msgid "Complete Sales Order" -msgstr "" +msgstr "Ordenes de venta completas" #: order/templates/order/sales_order_base.html:102 msgid "This Sales Order has not been fully allocated" -msgstr "" +msgstr "Esta orden de venta no ha sido completamente asignada" #: order/templates/order/sales_order_base.html:122 #: templates/js/translated/order.js:1253 msgid "Customer Reference" -msgstr "" +msgstr "Referencia del cliente" #: order/templates/order/sales_order_base.html:140 #: order/templates/order/sales_order_detail.html:78 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" -msgstr "" +msgstr "Envíos completados" #: order/templates/order/sales_order_base.html:215 msgid "Edit Sales Order" -msgstr "" +msgstr "Editar orden de venta" #: order/templates/order/sales_order_cancel.html:8 #: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" -msgstr "" +msgstr "Advertencia" #: order/templates/order/sales_order_cancel.html:9 msgid "Cancelling this order means that the order will no longer be editable." -msgstr "" +msgstr "Cancelar esta orden significa que la orden ya no será editable." #: order/templates/order/sales_order_detail.html:18 msgid "Sales Order Items" -msgstr "Artículos de Orden de Venta" +msgstr "Artículos de Pedidos de Venta" #: order/templates/order/sales_order_detail.html:44 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" -msgstr "" +msgstr "Envíos pendientes" #: order/templates/order/sales_order_detail.html:48 #: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465 msgid "Actions" -msgstr "" +msgstr "Acciones" #: order/templates/order/sales_order_detail.html:57 msgid "New Shipment" -msgstr "" +msgstr "Nuevo Envío" #: order/views.py:99 msgid "Cancel Order" -msgstr "" +msgstr "Cancelar orden" #: order/views.py:108 order/views.py:134 msgid "Confirm order cancellation" -msgstr "" +msgstr "Confirmar Cancelación de Orden" #: order/views.py:111 order/views.py:137 msgid "Order cannot be cancelled" -msgstr "" +msgstr "El pedido no puede ser cancelado" #: order/views.py:125 msgid "Cancel sales order" -msgstr "" +msgstr "Cancelar orden de venta" #: order/views.py:151 msgid "Issue Order" -msgstr "" +msgstr "Emitir pedido" #: order/views.py:160 msgid "Confirm order placement" -msgstr "" +msgstr "Confirmar colocación del pedido" #: order/views.py:170 msgid "Purchase order issued" -msgstr "" +msgstr "Órdenes de compra emitidas" #: order/views.py:197 msgid "Confirm order completion" -msgstr "" +msgstr "Confirmar la finalización del pedido" #: order/views.py:208 msgid "Purchase order completed" -msgstr "" +msgstr "La compra se ha completado" #: order/views.py:245 msgid "Match Supplier Parts" -msgstr "" +msgstr "Coincidir Piezas de Proveedor" #: order/views.py:489 msgid "Update prices" -msgstr "" +msgstr "Actualizar precios" #: order/views.py:747 #, python-brace-format msgid "Ordered {n} parts" -msgstr "" +msgstr "{n} partes pedidas" #: order/views.py:858 msgid "Sales order not found" -msgstr "" +msgstr "Orden de venta no encontrada" #: order/views.py:864 msgid "Price not found" -msgstr "" +msgstr "Precio no encontrado" #: order/views.py:867 #, python-brace-format msgid "Updated {part} unit-price to {price}" -msgstr "" +msgstr "Actualizado el precio unitario de {part} a {price}" #: order/views.py:872 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" -msgstr "" +msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}" #: part/api.py:499 msgid "Valid" -msgstr "" +msgstr "Válido" #: part/api.py:500 msgid "Validate entire Bill of Materials" -msgstr "" +msgstr "Validación de Lista de Materiales" #: part/api.py:505 msgid "This option must be selected" -msgstr "" +msgstr "Esta opción debe ser seleccionada" #: part/api.py:847 msgid "Must be greater than zero" -msgstr "" +msgstr "Debe ser mayor que 0" #: part/api.py:851 msgid "Must be a valid quantity" -msgstr "" +msgstr "Debe ser una cantidad válida" #: part/api.py:866 msgid "Specify location for initial part stock" -msgstr "" +msgstr "Especificar ubicación para el stock inicial de piezas" #: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920 msgid "This field is required" -msgstr "" +msgstr "Este campo es obligatorio" #: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" -msgstr "" +msgstr "Ubicación Predeterminada" #: part/bom.py:126 templates/email/low_stock_notification.html:17 msgid "Total Stock" -msgstr "" +msgstr "Inventario Total" #: part/bom.py:127 part/templates/part/part_base.html:185 msgid "Available Stock" -msgstr "" +msgstr "Stock Disponible" #: part/bom.py:128 part/templates/part/part_base.html:203 #: templates/js/translated/part.js:1301 msgid "On Order" -msgstr "" +msgstr "En pedido" #: part/forms.py:84 msgid "Select part category" -msgstr "" +msgstr "Definir Categoría de Parte" #: part/forms.py:121 msgid "Add parameter template to same level categories" -msgstr "" +msgstr "Añadir plantilla de parámetro a las categorías del mismo nivel" #: part/forms.py:125 msgid "Add parameter template to all categories" -msgstr "" +msgstr "Añadir plantilla de parámetro a todas las categorías" #: part/forms.py:145 msgid "Input quantity for price calculation" -msgstr "" +msgstr "Cantidad de entrada para el cálculo del precio" #: part/models.py:84 msgid "Default location for parts in this category" -msgstr "" +msgstr "Ubicación predeterminada para partes de esta categoría" #: part/models.py:87 msgid "Default keywords" -msgstr "" +msgstr "Palabras clave predeterminadas" #: part/models.py:87 msgid "Default keywords for parts in this category" -msgstr "" +msgstr "Palabras clave por defecto para partes en esta categoría" #: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "" +msgstr "Categoría de parte" #: part/models.py:98 part/templates/part/category.html:128 #: templates/InvenTree/search.html:95 templates/stats.html:96 #: users/models.py:40 msgid "Part Categories" -msgstr "" +msgstr "Categorías de parte" #: part/models.py:360 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:17 part/templates/part/category.html:133 @@ -3966,65 +3970,65 @@ msgstr "" #: templates/js/translated/part.js:1663 templates/navbar.html:21 #: templates/stats.html:92 templates/stats.html:101 users/models.py:41 msgid "Parts" -msgstr "" +msgstr "Partes" #: part/models.py:452 msgid "Invalid choice for parent part" -msgstr "Parte inválida para parte principal" +msgstr "Opción no válida para la parte principal" #: part/models.py:532 part/models.py:544 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" -msgstr "" +msgstr "La parte '{p1}' se utiliza en BOM para '{p2}' (recursivo)" #: part/models.py:674 msgid "Next available serial numbers are" -msgstr "" +msgstr "Próximos números de serie disponibles son" #: part/models.py:678 msgid "Next available serial number is" -msgstr "" +msgstr "El siguiente número de serie disponible es" #: part/models.py:683 msgid "Most recent serial number is" -msgstr "" +msgstr "El número de serie más reciente es" #: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" -msgstr "" +msgstr "IPN duplicado no permitido en la configuración de partes" #: part/models.py:803 part/models.py:2622 msgid "Part name" -msgstr "" +msgstr "Nombre de la pieza" #: part/models.py:810 msgid "Is Template" -msgstr "" +msgstr "Es plantilla" #: part/models.py:811 msgid "Is this part a template part?" -msgstr "" +msgstr "¿Es esta parte una parte de la plantilla?" #: part/models.py:821 msgid "Is this part a variant of another part?" -msgstr "" +msgstr "¿Es esta parte una variante de otra parte?" #: part/models.py:822 msgid "Variant Of" -msgstr "" +msgstr "Variante de" #: part/models.py:828 msgid "Part description" -msgstr "" +msgstr "Descripción de la pieza" #: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" -msgstr "" +msgstr "Palabras claves" #: part/models.py:834 msgid "Part keywords to improve visibility in search results" -msgstr "" +msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqueda" #: part/models.py:841 part/models.py:2319 part/models.py:2568 #: part/templates/part/part_base.html:265 @@ -4032,46 +4036,46 @@ msgstr "" #: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" -msgstr "" +msgstr "Categoría" #: part/models.py:842 msgid "Part category" -msgstr "" +msgstr "Categoría de parte" #: part/models.py:847 part/templates/part/part_base.html:274 #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 #: templates/js/translated/stock.js:1684 msgid "IPN" -msgstr "" +msgstr "IPN" #: part/models.py:848 msgid "Internal Part Number" -msgstr "" +msgstr "Número de parte interna" #: part/models.py:854 msgid "Part revision or version number" -msgstr "" +msgstr "Revisión de parte o número de versión" #: part/models.py:855 part/templates/part/part_base.html:281 #: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" -msgstr "" +msgstr "Revisión" #: part/models.py:877 msgid "Where is this item normally stored?" -msgstr "" +msgstr "¿Dónde se almacena este elemento normalmente?" #: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" -msgstr "" +msgstr "Proveedor por defecto" #: part/models.py:925 msgid "Default supplier part" -msgstr "" +msgstr "Parte de proveedor predeterminada" #: part/models.py:932 msgid "Default Expiry" -msgstr "" +msgstr "Expiración por defecto" #: part/models.py:933 msgid "Expiry time (in days) for stock items of this part" @@ -4079,138 +4083,138 @@ msgstr "Tiempo de expiración (en días) para los artículos de stock de esta pa #: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" -msgstr "" +msgstr "Stock mínimo" #: part/models.py:939 msgid "Minimum allowed stock level" -msgstr "" +msgstr "Nivel mínimo de stock permitido" #: part/models.py:946 msgid "Stock keeping units for this part" -msgstr "" +msgstr "Unidades de mantenimiento de stock para esta parte" #: part/models.py:952 msgid "Can this part be built from other parts?" -msgstr "" +msgstr "¿Se puede construir esta pieza a partir de otras piezas?" #: part/models.py:958 msgid "Can this part be used to build other parts?" -msgstr "" +msgstr "¿Se puede utilizar esta pieza para construir otras partes?" #: part/models.py:964 msgid "Does this part have tracking for unique items?" -msgstr "" +msgstr "¿Esta parte tiene seguimiento de objetos únicos?" #: part/models.py:969 msgid "Can this part be purchased from external suppliers?" -msgstr "" +msgstr "¿Se puede comprar esta pieza a proveedores externos?" #: part/models.py:974 msgid "Can this part be sold to customers?" -msgstr "" +msgstr "¿Se puede vender esta pieza a los clientes?" #: part/models.py:979 msgid "Is this part active?" -msgstr "" +msgstr "¿Está activa esta parte?" #: part/models.py:984 msgid "Is this a virtual part, such as a software product or license?" -msgstr "" +msgstr "¿Es ésta una parte virtual, como un producto de software o una licencia?" #: part/models.py:989 msgid "Part notes - supports Markdown formatting" -msgstr "" +msgstr "Notas de parte - soporta formato Markdown" #: part/models.py:992 msgid "BOM checksum" -msgstr "" +msgstr "BOM checksum" #: part/models.py:992 msgid "Stored BOM checksum" -msgstr "" +msgstr "Suma de control BOM almacenada" #: part/models.py:995 msgid "BOM checked by" -msgstr "" +msgstr "BOM comprobado por" #: part/models.py:997 msgid "BOM checked date" -msgstr "" +msgstr "Fecha BOM comprobada" #: part/models.py:1001 msgid "Creation User" -msgstr "" +msgstr "Creación de Usuario" #: part/models.py:1819 msgid "Sell multiple" -msgstr "" +msgstr "Vender múltiples" #: part/models.py:2369 msgid "Test templates can only be created for trackable parts" -msgstr "" +msgstr "Las plantillas de prueba sólo pueden ser creadas para partes rastreables" #: part/models.py:2386 msgid "Test with this name already exists for this part" -msgstr "" +msgstr "Ya existe una prueba con este nombre para esta parte" #: part/models.py:2406 templates/js/translated/part.js:1714 #: templates/js/translated/stock.js:1312 msgid "Test Name" -msgstr "" +msgstr "Nombre de prueba" #: part/models.py:2407 msgid "Enter a name for the test" -msgstr "" +msgstr "Introduzca un nombre para la prueba" #: part/models.py:2412 msgid "Test Description" -msgstr "" +msgstr "Descripción de prueba" #: part/models.py:2413 msgid "Enter description for this test" -msgstr "" +msgstr "Introduce la descripción para esta prueba" #: part/models.py:2418 templates/js/translated/part.js:1723 #: templates/js/translated/table_filters.js:276 msgid "Required" -msgstr "" +msgstr "Requerido" #: part/models.py:2419 msgid "Is this test required to pass?" -msgstr "" +msgstr "¿Es necesario pasar esta prueba?" #: part/models.py:2424 templates/js/translated/part.js:1731 msgid "Requires Value" -msgstr "" +msgstr "Requiere valor" #: part/models.py:2425 msgid "Does this test require a value when adding a test result?" -msgstr "" +msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?" #: part/models.py:2430 templates/js/translated/part.js:1738 msgid "Requires Attachment" -msgstr "" +msgstr "Adjunto obligatorio" #: part/models.py:2431 msgid "Does this test require a file attachment when adding a test result?" -msgstr "" +msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?" #: part/models.py:2442 #, python-brace-format msgid "Illegal character in template name ({c})" -msgstr "" +msgstr "Carácter no válido en el nombre de la plantilla ({c})" #: part/models.py:2478 msgid "Parameter template name must be unique" -msgstr "" +msgstr "El nombre de parámetro en la plantilla tiene que ser único" #: part/models.py:2486 msgid "Parameter Name" -msgstr "" +msgstr "Nombre de Parámetro" #: part/models.py:2493 msgid "Parameter Units" -msgstr "" +msgstr "Unidad del Parámetro" #: part/models.py:2523 msgid "Parent Part" @@ -4219,23 +4223,23 @@ msgstr "Parte principal" #: part/models.py:2525 part/models.py:2574 part/models.py:2575 #: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" -msgstr "" +msgstr "Plantilla de parámetro" #: part/models.py:2527 msgid "Data" -msgstr "" +msgstr "Data" #: part/models.py:2527 msgid "Parameter Value" -msgstr "" +msgstr "Valor del parámetro" #: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" -msgstr "" +msgstr "Valor predeterminado" #: part/models.py:2580 msgid "Default Parameter Value" -msgstr "" +msgstr "Valor de parámetro por defecto" #: part/models.py:2614 msgid "Part ID or part name" @@ -4243,7 +4247,7 @@ msgstr "" #: part/models.py:2617 templates/js/translated/model_renderers.js:182 msgid "Part ID" -msgstr "" +msgstr "ID de Parte" #: part/models.py:2618 msgid "Unique part ID value" @@ -4275,141 +4279,141 @@ msgstr "Seleccionar parte principal" #: part/models.py:2698 msgid "Sub part" -msgstr "" +msgstr "Sub parte" #: part/models.py:2699 msgid "Select part to be used in BOM" -msgstr "" +msgstr "Seleccionar parte a utilizar en BOM" #: part/models.py:2705 msgid "BOM quantity for this BOM item" -msgstr "" +msgstr "Cantidad del artículo en BOM" #: part/models.py:2707 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865 #: templates/js/translated/table_filters.js:92 msgid "Optional" -msgstr "" +msgstr "Opcional" #: part/models.py:2707 msgid "This BOM item is optional" -msgstr "" +msgstr "Este elemento BOM es opcional" #: part/models.py:2710 part/templates/part/upload_bom.html:55 msgid "Overage" -msgstr "" +msgstr "Exceso" #: part/models.py:2711 msgid "Estimated build wastage quantity (absolute or percentage)" -msgstr "" +msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)" #: part/models.py:2714 msgid "BOM item reference" -msgstr "" +msgstr "Referencia de artículo de BOM" #: part/models.py:2717 msgid "BOM item notes" -msgstr "" +msgstr "Notas del artículo de BOM" #: part/models.py:2719 msgid "Checksum" -msgstr "" +msgstr "Checksum" #: part/models.py:2719 msgid "BOM line checksum" -msgstr "" +msgstr "Suma de comprobación de la línea en BOM" #: part/models.py:2723 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:882 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" -msgstr "" +msgstr "Heredado" #: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" -msgstr "" +msgstr "Este artículo BOM es heredado por BOMs para partes variantes" #: part/models.py:2729 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:874 msgid "Allow Variants" -msgstr "" +msgstr "Permitir variantes" #: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" -msgstr "" +msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM" #: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" -msgstr "" +msgstr "La cantidad debe ser un valor entero para las partes rastreables" #: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" -msgstr "" +msgstr "Debe especificar la subparte" #: part/models.py:2955 msgid "BOM Item Substitute" -msgstr "" +msgstr "Ítem de BOM sustituto" #: part/models.py:2977 msgid "Substitute part cannot be the same as the master part" -msgstr "" +msgstr "La parte sustituta no puede ser la misma que la parte principal" #: part/models.py:2989 msgid "Parent BOM item" -msgstr "Artículo BOM principal" +msgstr "Artículo BOM superior" #: part/models.py:2997 msgid "Substitute part" -msgstr "" +msgstr "Sustituir parte" #: part/models.py:3008 msgid "Part 1" -msgstr "" +msgstr "Parte 1" #: part/models.py:3012 msgid "Part 2" -msgstr "" +msgstr "Parte 2" #: part/models.py:3012 msgid "Select Related Part" -msgstr "" +msgstr "Seleccionar parte relacionada" #: part/models.py:3044 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" -msgstr "" +msgstr "Error al crear relación: compruebe que la parte no está relacionada con sí misma y que la relación es única" #: part/serializers.py:667 msgid "Select part to copy BOM from" -msgstr "" +msgstr "Seleccionar parte de la que copiar BOM" #: part/serializers.py:678 msgid "Remove Existing Data" -msgstr "" +msgstr "Eliminar Datos Existentes" #: part/serializers.py:679 msgid "Remove existing BOM items before copying" -msgstr "" +msgstr "Eliminar elementos BOM existentes antes de copiar" #: part/serializers.py:684 msgid "Include Inherited" -msgstr "" +msgstr "Incluye Heredado" #: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" -msgstr "" +msgstr "Incluye elementos BOM que son heredados de partes con plantillas" #: part/serializers.py:690 msgid "Skip Invalid Rows" -msgstr "" +msgstr "Omitir filas no válidas" #: part/serializers.py:691 msgid "Enable this option to skip invalid rows" -msgstr "" +msgstr "Activar esta opción para omitir filas inválidas" #: part/serializers.py:734 msgid "Clear Existing BOM" -msgstr "" +msgstr "Limpiar BOM Existente" #: part/serializers.py:735 msgid "Delete existing BOM items before uploading" @@ -4421,181 +4425,181 @@ msgstr "" #: part/serializers.py:805 msgid "Multiple matching parts found" -msgstr "" +msgstr "Varios resultados encontrados" #: part/serializers.py:808 msgid "No matching part found" -msgstr "" +msgstr "No se encontraron partes coincidentes" #: part/serializers.py:811 msgid "Part is not designated as a component" -msgstr "" +msgstr "La parte no está designada como componente" #: part/serializers.py:820 msgid "Quantity not provided" -msgstr "" +msgstr "Cantidad no proporcionada" #: part/serializers.py:828 msgid "Invalid quantity" -msgstr "" +msgstr "Cantidad no válida" #: part/serializers.py:847 msgid "At least one BOM item is required" -msgstr "" +msgstr "Se requiere al menos un elemento BOM" #: part/tasks.py:58 msgid "Low stock notification" -msgstr "" +msgstr "Notificación por bajo stock" #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." -msgstr "" +msgstr "No tienes permiso para editar la lista de materiales." #: part/templates/part/bom.html:15 #, python-format msgid "The BOM for %(part)s has changed, and must be validated.
" -msgstr "" +msgstr "El BOM para %(part)s ha cambiado y debe ser validado.
" #: part/templates/part/bom.html:17 #, python-format msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" -msgstr "" +msgstr "El BOM para %(part)s fue revisado por última vez por %(checker)s el %(check_date)s" #: part/templates/part/bom.html:21 #, python-format msgid "The BOM for %(part)s has not been validated." -msgstr "" +msgstr "El BOM para %(part)s no ha sido validada." #: part/templates/part/bom.html:30 part/templates/part/detail.html:273 msgid "BOM actions" -msgstr "" +msgstr "Acciones BOM" #: part/templates/part/bom.html:34 msgid "Delete Items" -msgstr "" +msgstr "Eliminar elementos" #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" -msgstr "" +msgstr "Estás suscrito a las notificaciones de esta categoría" #: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" -msgstr "" +msgstr "Suscribirse a las notificaciones de esta categoría" #: part/templates/part/category.html:42 msgid "Category Actions" -msgstr "" +msgstr "Acciones de categoría" #: part/templates/part/category.html:47 msgid "Edit category" -msgstr "" +msgstr "Editar categoría" #: part/templates/part/category.html:48 msgid "Edit Category" -msgstr "" +msgstr "Editar Categoría" #: part/templates/part/category.html:52 msgid "Delete category" -msgstr "" +msgstr "Eliminar categoría" #: part/templates/part/category.html:53 msgid "Delete Category" -msgstr "" +msgstr "Eliminar Categoría" #: part/templates/part/category.html:61 msgid "Create new part category" -msgstr "" +msgstr "Crear nueva categoría de partes" #: part/templates/part/category.html:62 msgid "New Category" -msgstr "" +msgstr "Nueva Categoría" #: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" -msgstr "" +msgstr "Ruta de Categoría" #: part/templates/part/category.html:94 msgid "Top level part category" -msgstr "" +msgstr "Categoría de partes de nivel superior" #: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" -msgstr "" +msgstr "Subcategorías" #: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "Partes (incluyendo subcategorías)" #: part/templates/part/category.html:156 msgid "Export Part Data" -msgstr "" +msgstr "Exportar Datos de Parte" #: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" -msgstr "" +msgstr "Exportar" #: part/templates/part/category.html:160 msgid "Create new part" -msgstr "" +msgstr "Crear nueva parte" #: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" -msgstr "" +msgstr "Nueva Parte" #: part/templates/part/category.html:175 msgid "Set category" -msgstr "" +msgstr "Definir categoría" #: part/templates/part/category.html:175 msgid "Set Category" -msgstr "" +msgstr "Definir Categoría" #: part/templates/part/category.html:179 msgid "Print Labels" -msgstr "" +msgstr "Imprimir Etiquetas" #: part/templates/part/category.html:181 msgid "Export Data" -msgstr "" +msgstr "Exportar Datos" #: part/templates/part/category.html:195 msgid "Part Parameters" -msgstr "" +msgstr "Parámetros de Parte" #: part/templates/part/category.html:288 msgid "Create Part Category" -msgstr "" +msgstr "Crear Categoría de Parte" #: part/templates/part/category.html:315 msgid "Create Part" -msgstr "" +msgstr "Crear Parte" #: part/templates/part/category_delete.html:5 msgid "Are you sure you want to delete category" -msgstr "" +msgstr "¿Está seguro que desea eliminar la categoría" #: part/templates/part/category_delete.html:8 #, python-format msgid "This category contains %(count)s child categories" -msgstr "" +msgstr "Esta categoría contiene %(count)s subcategorías" #: part/templates/part/category_delete.html:9 msgid "If this category is deleted, these child categories will be moved to the" -msgstr "" +msgstr "Si se elimina esta categoría, estas categorías se moverán a la" #: part/templates/part/category_delete.html:11 msgid "category" -msgstr "" +msgstr "categoría" #: part/templates/part/category_delete.html:13 msgid "top level Parts category" -msgstr "" +msgstr "categoría de piezas de alto nivel" #: part/templates/part/category_delete.html:25 #, python-format msgid "This category contains %(count)s parts" -msgstr "" +msgstr "Esta categoría contiene %(count)s partes" #: part/templates/part/category_delete.html:27 #, python-format @@ -4604,328 +4608,328 @@ msgstr "Si se elimina esta categoría, estas partes se moverán a la categoría #: part/templates/part/category_delete.html:29 msgid "If this category is deleted, these parts will be moved to the top-level category Teile" -msgstr "" +msgstr "Si se elimina esta categoría, estas partes se moverán a la categoría principal" #: part/templates/part/category_sidebar.html:13 msgid "Import Parts" -msgstr "" +msgstr "Importar Partes" #: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348 msgid "Duplicate Part" -msgstr "" +msgstr "Duplicar Parte" #: part/templates/part/copy_part.html:10 #, python-format msgid "Make a copy of part '%(full_name)s'." -msgstr "" +msgstr "Hacer una copia de la parte '%(full_name)s'." #: part/templates/part/copy_part.html:14 #: part/templates/part/create_part.html:11 msgid "Possible Matching Parts" -msgstr "" +msgstr "Posibles Partes coincidentes" #: part/templates/part/copy_part.html:15 #: part/templates/part/create_part.html:12 msgid "The new part may be a duplicate of these existing parts" -msgstr "" +msgstr "La nueva parte puede ser un duplicado de estas partes existentes" #: part/templates/part/create_part.html:17 #, python-format msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" -msgstr "" +msgstr "%(full_name)s - %(desc)s (%(match_per)s%% coincidencia)" #: part/templates/part/detail.html:21 msgid "Part Stock" -msgstr "" +msgstr "Stock de parte" #: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" -msgstr "" +msgstr "Mostrando stock para todas las variantes de %(full_name)s" #: part/templates/part/detail.html:43 msgid "Part Stock Allocations" -msgstr "" +msgstr "Asignaciones de Stock de Parte" #: part/templates/part/detail.html:60 msgid "Part Test Templates" -msgstr "" +msgstr "Plantillas de prueba de parte" #: part/templates/part/detail.html:65 msgid "Add Test Template" -msgstr "" +msgstr "Añadir Plantilla de Prueba" #: part/templates/part/detail.html:122 msgid "Sales Order Allocations" -msgstr "" +msgstr "Asignaciones de órdenes de venta" #: part/templates/part/detail.html:162 msgid "Part Variants" -msgstr "" +msgstr "Variantes de Parte" #: part/templates/part/detail.html:166 msgid "Create new variant" -msgstr "" +msgstr "Crear nueva variante" #: part/templates/part/detail.html:167 msgid "New Variant" -msgstr "" +msgstr "Nueva Variante" #: part/templates/part/detail.html:194 msgid "Add new parameter" -msgstr "" +msgstr "Añadir nuevo parámetro" #: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" -msgstr "" +msgstr "Partes relacionadas" #: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" -msgstr "" +msgstr "Añadir Relacionado" #: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18 msgid "Bill of Materials" -msgstr "" +msgstr "Lista de Materiales" #: part/templates/part/detail.html:261 msgid "Export actions" -msgstr "" +msgstr "Exportar acciones" #: part/templates/part/detail.html:265 templates/js/translated/bom.js:283 msgid "Export BOM" -msgstr "" +msgstr "Exportar BOM" #: part/templates/part/detail.html:267 msgid "Print BOM Report" -msgstr "" +msgstr "Imprimir informe BOM" #: part/templates/part/detail.html:277 msgid "Upload BOM" -msgstr "" +msgstr "Subir BOM" #: part/templates/part/detail.html:279 templates/js/translated/part.js:272 msgid "Copy BOM" -msgstr "" +msgstr "Copiar BOM" #: part/templates/part/detail.html:281 msgid "Validate BOM" -msgstr "" +msgstr "Validar BOM" #: part/templates/part/detail.html:286 msgid "New BOM Item" -msgstr "" +msgstr "Nuevo Item en el BOM" #: part/templates/part/detail.html:287 msgid "Add BOM Item" -msgstr "" +msgstr "Añadir artículo al BOM" #: part/templates/part/detail.html:300 msgid "Assemblies" -msgstr "" +msgstr "Ensamblajes" #: part/templates/part/detail.html:317 msgid "Part Builds" -msgstr "" +msgstr "Construcción de partes" #: part/templates/part/detail.html:342 msgid "Build Order Allocations" -msgstr "" +msgstr "Construir adjudicaciones de pedidos" #: part/templates/part/detail.html:352 msgid "Part Suppliers" -msgstr "" +msgstr "Proveedores de piezas" #: part/templates/part/detail.html:380 msgid "Part Manufacturers" -msgstr "" +msgstr "Fabricantes de piezas" #: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" -msgstr "" +msgstr "Eliminar partes del fabricante" #: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" -msgstr "" +msgstr "¿Eliminar elementos BOM seleccionados?" #: part/templates/part/detail.html:579 msgid "All selected BOM items will be deleted" -msgstr "" +msgstr "Todos los elementos BOM seleccionados serán eliminados" #: part/templates/part/detail.html:628 msgid "Create BOM Item" -msgstr "" +msgstr "Crear artículo para el BOM" #: part/templates/part/detail.html:685 msgid "Related Part" -msgstr "" +msgstr "Partes relacionadas" #: part/templates/part/detail.html:693 msgid "Add Related Part" -msgstr "" +msgstr "Añadir artículos relacionados" #: part/templates/part/detail.html:788 msgid "Add Test Result Template" -msgstr "" +msgstr "Añadir plantilla de resultados de prueba" #: part/templates/part/detail.html:845 msgid "Edit Part Notes" -msgstr "" +msgstr "Editar notas del artículo" #: part/templates/part/detail.html:958 #, python-format msgid "Purchase Unit Price - %(currency)s" -msgstr "" +msgstr "Precio de unidad de compra - %(currency)s" #: part/templates/part/detail.html:970 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" -msgstr "" +msgstr "Diferencia entre precio y costo unitario - %(currency)s" #: part/templates/part/detail.html:982 #, python-format msgid "Supplier Unit Cost - %(currency)s" -msgstr "" +msgstr "Costo de Unidad de Proveedor - %(currency)s" #: part/templates/part/detail.html:1071 #, python-format msgid "Unit Price - %(currency)s" -msgstr "" +msgstr "Precio unitario - %(currency)s" #: part/templates/part/import_wizard/ajax_match_fields.html:9 #: part/templates/part/import_wizard/match_fields.html:9 #: templates/patterns/wizard/match_fields.html:8 msgid "Missing selections for the following required columns" -msgstr "" +msgstr "Faltan selecciones para las siguientes columnas requeridas" #: part/templates/part/import_wizard/ajax_match_fields.html:20 #: part/templates/part/import_wizard/match_fields.html:20 #: templates/patterns/wizard/match_fields.html:19 msgid "Duplicate selections found, see below. Fix them then retry submitting." -msgstr "" +msgstr "Se han encontrado selecciones duplicadas, vea a continuación. Arreglarlas y vuelva a intentar enviarlas." #: part/templates/part/import_wizard/ajax_match_fields.html:28 #: part/templates/part/import_wizard/match_fields.html:35 #: templates/patterns/wizard/match_fields.html:34 msgid "File Fields" -msgstr "" +msgstr "Campos de archivo" #: part/templates/part/import_wizard/ajax_match_fields.html:35 #: part/templates/part/import_wizard/match_fields.html:42 #: templates/patterns/wizard/match_fields.html:41 msgid "Remove column" -msgstr "" +msgstr "Eliminar columna" #: part/templates/part/import_wizard/ajax_match_fields.html:53 #: part/templates/part/import_wizard/match_fields.html:60 #: templates/patterns/wizard/match_fields.html:59 msgid "Duplicate selection" -msgstr "" +msgstr "Duplicar selección" #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." -msgstr "" +msgstr "Privilegios insuficientes." #: part/templates/part/import_wizard/part_upload.html:8 msgid "Return to Parts" -msgstr "" +msgstr "Volver a los artículos" #: part/templates/part/import_wizard/part_upload.html:16 msgid "Import Parts from File" -msgstr "" +msgstr "Importar artículos desde archivo" #: part/templates/part/part_app_base.html:12 msgid "Part List" -msgstr "" +msgstr "Listado de artículos" #: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 msgid "You are subscribed to notifications for this part" -msgstr "" +msgstr "Estás suscrito a las notificaciones de este artículo" #: part/templates/part/part_base.html:35 msgid "Subscribe to notifications for this part" -msgstr "" +msgstr "Suscríbete a las notificaciones de este artículo" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:35 #: stock/templates/stock/location.html:33 msgid "Barcode actions" -msgstr "" +msgstr "Acciones para código de barras" #: part/templates/part/part_base.html:45 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" -msgstr "" +msgstr "Mostrar código QR" #: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:55 #: stock/templates/stock/location.html:36 msgid "Print Label" -msgstr "" +msgstr "Imprimir etiqueta" #: part/templates/part/part_base.html:51 msgid "Show pricing information" -msgstr "" +msgstr "Mostrar información de precios" #: part/templates/part/part_base.html:56 #: stock/templates/stock/item_base.html:112 #: stock/templates/stock/location.html:44 msgid "Stock actions" -msgstr "" +msgstr "Acciones de stock" #: part/templates/part/part_base.html:63 msgid "Count part stock" -msgstr "" +msgstr "Contar stock de piezas" #: part/templates/part/part_base.html:69 msgid "Transfer part stock" -msgstr "" +msgstr "Transferir stock de piezas" #: part/templates/part/part_base.html:84 msgid "Part actions" -msgstr "" +msgstr "Acciones para piezas" #: part/templates/part/part_base.html:87 msgid "Duplicate part" -msgstr "" +msgstr "Duplicar pieza" #: part/templates/part/part_base.html:90 msgid "Edit part" -msgstr "" +msgstr "Editar pieza" #: part/templates/part/part_base.html:93 msgid "Delete part" -msgstr "" +msgstr "Eliminar pieza" #: part/templates/part/part_base.html:112 msgid "Part is a template part (variants can be made from this part)" -msgstr "" +msgstr "La pieza es una pieza de plantilla (las variantes se pueden hacer a partir de esta pieza)" #: part/templates/part/part_base.html:116 msgid "Part can be assembled from other parts" -msgstr "" +msgstr "La pieza puede ser ensamblada desde otras piezas" #: part/templates/part/part_base.html:120 msgid "Part can be used in assemblies" -msgstr "" +msgstr "La pieza puede ser usada en ensamblajes" #: part/templates/part/part_base.html:124 msgid "Part stock is tracked by serial number" -msgstr "" +msgstr "El stock de esta pieza está rastreado por número de serie" #: part/templates/part/part_base.html:128 msgid "Part can be purchased from external suppliers" -msgstr "" +msgstr "La pieza puede ser comprada de proveedores externos" #: part/templates/part/part_base.html:132 msgid "Part can be sold to customers" -msgstr "" +msgstr "La pieza puede ser vendida a clientes" #: part/templates/part/part_base.html:138 #: part/templates/part/part_base.html:146 msgid "Part is virtual (not a physical part)" -msgstr "" +msgstr "La pieza es virtual (no una pieza física)" #: part/templates/part/part_base.html:139 #: templates/js/translated/company.js:508 @@ -4933,72 +4937,72 @@ msgstr "" #: templates/js/translated/model_renderers.js:175 #: templates/js/translated/part.js:533 templates/js/translated/part.js:610 msgid "Inactive" -msgstr "" +msgstr "Inactivo" #: part/templates/part/part_base.html:156 #: part/templates/part/part_base.html:579 msgid "Show Part Details" -msgstr "" +msgstr "Mostrar Detalles de Parte" #: part/templates/part/part_base.html:173 #, python-format msgid "This part is a variant of %(link)s" -msgstr "" +msgstr "Esta parte es una variante de %(link)s" #: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217 #: templates/js/translated/table_filters.js:193 msgid "In Stock" -msgstr "" +msgstr "En Stock" #: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178 msgid "Required for Build Orders" -msgstr "" +msgstr "Requerido para construir pedidos" #: part/templates/part/part_base.html:217 msgid "Required for Sales Orders" -msgstr "" +msgstr "Requerido para Pedidos de Venta" #: part/templates/part/part_base.html:224 msgid "Allocated to Orders" -msgstr "" +msgstr "Asignado a Pedidos" #: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903 msgid "Can Build" -msgstr "" +msgstr "Puede construir" #: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132 #: templates/js/translated/part.js:1305 msgid "Building" -msgstr "" +msgstr "En construcción" #: part/templates/part/part_base.html:295 msgid "Minimum stock level" -msgstr "" +msgstr "Nivel mínimo de stock" #: part/templates/part/part_base.html:324 msgid "Latest Serial Number" -msgstr "" +msgstr "Último Número Serial" #: part/templates/part/part_base.html:328 #: stock/templates/stock/item_base.html:168 msgid "Search for serial number" -msgstr "" +msgstr "Buscar número de serie" #: part/templates/part/part_base.html:449 part/templates/part/prices.html:144 msgid "Calculate" -msgstr "" +msgstr "Calcular" #: part/templates/part/part_base.html:492 msgid "No matching images found" -msgstr "" +msgstr "No se encontraron imágenes coincidentes" #: part/templates/part/part_base.html:573 msgid "Hide Part Details" -msgstr "" +msgstr "Ocultar Detalles de la Parte" #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" -msgstr "" +msgstr "Precios del Proveedor" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 @@ -5007,7 +5011,7 @@ msgstr "" #: part/templates/part/prices.html:52 part/templates/part/prices.html:103 #: part/templates/part/prices.html:120 msgid "Unit Cost" -msgstr "" +msgstr "Coste Unitario" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 @@ -5016,520 +5020,522 @@ msgstr "" #: part/templates/part/prices.html:59 part/templates/part/prices.html:108 #: part/templates/part/prices.html:125 msgid "Total Cost" -msgstr "" +msgstr "Costo Total" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 #: templates/js/translated/bom.js:857 msgid "No supplier pricing available" -msgstr "" +msgstr "Ningún precio de proveedor disponible" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 #: part/templates/part/prices.html:243 msgid "BOM Pricing" -msgstr "" +msgstr "Precios BOM" #: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 msgid "Unit Purchase Price" -msgstr "" +msgstr "Precio de Compra Unitario" #: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 msgid "Total Purchase Price" -msgstr "" +msgstr "Precio total de compra" #: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" -msgstr "" +msgstr "Nota: los precios BOM están incompletos para esta parte" #: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" -msgstr "" +msgstr "No hay precios BOM disponibles" #: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" -msgstr "" +msgstr "Precio Interno" #: part/templates/part/part_pricing.html:128 #: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." -msgstr "" +msgstr "No hay información de precios disponible para esta parte." #: part/templates/part/part_sidebar.html:12 msgid "Variants" -msgstr "" +msgstr "Variantes" #: part/templates/part/part_sidebar.html:26 msgid "Used In" -msgstr "" +msgstr "Usado en" #: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" -msgstr "" +msgstr "Asignaciones" #: part/templates/part/part_sidebar.html:48 msgid "Test Templates" -msgstr "" +msgstr "Plantillas de Prueba" #: part/templates/part/part_thumb.html:11 msgid "Select from existing images" -msgstr "" +msgstr "Seleccionar de imágenes existentes" #: part/templates/part/partial_delete.html:9 #, python-format msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" "
Disable the \"Active\" part attribute and re-try.\n" " " -msgstr "" +msgstr "Parte '%(full_name)s' no se puede eliminar ya que todavía está marcada como activa.\n" +"
Desactiva el atributo \"Activo\" y vuelve a intentarlo.\n" +" " #: part/templates/part/partial_delete.html:17 #, python-format msgid "Are you sure you want to delete part '%(full_name)s'?" -msgstr "" +msgstr "¿Está seguro que desea eliminar la parte '%(full_name)s'?" #: part/templates/part/partial_delete.html:22 #, python-format msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" -msgstr "" +msgstr "Esta parte se utiliza en BOMs para otras %(count)s partes. Si eliminas esta parte, se actualizarán los BOMs de las siguientes partes" #: part/templates/part/partial_delete.html:32 #, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" -msgstr "" +msgstr "Hay %(count)s entradas de stock definidas para esta parte. Si elimina esta parte, también se eliminarán las siguientes entradas de stock:" #: part/templates/part/partial_delete.html:43 #, python-format msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:" -msgstr "" +msgstr "Hay %(count)s fabricantes definidos para esta parte. Si la elimina, también se eliminarán las siguientes partes del fabricante:" #: part/templates/part/partial_delete.html:54 #, python-format msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:" -msgstr "" +msgstr "Hay %(count)s proveedores definidos para esta parte. Si la elimina, también se eliminarán:" #: part/templates/part/partial_delete.html:65 #, python-format msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." -msgstr "" +msgstr "Hay %(count)s partes únicas registradas para '%(full_name)s'. Al eliminar esta parte se eliminará permanentemente esta información de seguimiento." #: part/templates/part/prices.html:16 msgid "Pricing ranges" -msgstr "" +msgstr "Rangos de precio" #: part/templates/part/prices.html:22 msgid "Show supplier cost" -msgstr "" +msgstr "Mostrar coste del proveedor" #: part/templates/part/prices.html:23 msgid "Show purchase price" -msgstr "" +msgstr "Mostrar precio de compra" #: part/templates/part/prices.html:50 msgid "Show BOM cost" -msgstr "" +msgstr "Mostrar coste de BOM" #: part/templates/part/prices.html:117 msgid "Show sale cost" -msgstr "" +msgstr "Mostrar coste de venta" #: part/templates/part/prices.html:118 msgid "Show sale price" -msgstr "" +msgstr "Mostrar precio de venta" #: part/templates/part/prices.html:140 msgid "Calculation parameters" -msgstr "" +msgstr "Parámetros de cálculo" #: part/templates/part/prices.html:155 templates/js/translated/bom.js:851 msgid "Supplier Cost" -msgstr "" +msgstr "Coste de Proveedor" #: part/templates/part/prices.html:156 part/templates/part/prices.html:177 #: part/templates/part/prices.html:201 part/templates/part/prices.html:231 #: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" -msgstr "" +msgstr "Ir a la vista general" #: part/templates/part/prices.html:181 msgid "Stock Pricing" -msgstr "" +msgstr "Precio de Stock" #: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." -msgstr "" +msgstr "No hay historial de precios de stock disponible para esta parte." #: part/templates/part/prices.html:200 msgid "Internal Cost" -msgstr "" +msgstr "Coste Interno" #: part/templates/part/prices.html:215 part/views.py:1390 msgid "Add Internal Price Break" -msgstr "" +msgstr "Añadir salto de precio interno" #: part/templates/part/prices.html:230 msgid "BOM Cost" -msgstr "" +msgstr "Coste BOM" #: part/templates/part/prices.html:256 msgid "Sale Cost" -msgstr "" +msgstr "Coste de Venta" #: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." -msgstr "" +msgstr "No hay historial de precios de venta disponible para esta parte." #: part/templates/part/set_category.html:9 msgid "Set category for the following parts" -msgstr "" +msgstr "Establecer categoría para las siguientes partes" #: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 #: templates/js/translated/part.js:1309 msgid "No Stock" -msgstr "" +msgstr "Sin Stock" #: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 msgid "Low Stock" -msgstr "" +msgstr "Bajo Stock" #: part/templates/part/upload_bom.html:8 msgid "Return to BOM" -msgstr "" +msgstr "Volver al BOM" #: part/templates/part/upload_bom.html:13 msgid "Upload Bill of Materials" -msgstr "" +msgstr "Cargar Lista de Materiales" #: part/templates/part/upload_bom.html:19 msgid "BOM upload requirements" -msgstr "" +msgstr "Requisitos de subida BOM" #: part/templates/part/upload_bom.html:23 #: part/templates/part/upload_bom.html:90 msgid "Upload BOM File" -msgstr "" +msgstr "Subir archivo BOM" #: part/templates/part/upload_bom.html:29 msgid "Submit BOM Data" -msgstr "" +msgstr "Enviar datos BOM" #: part/templates/part/upload_bom.html:37 msgid "Requirements for BOM upload" -msgstr "" +msgstr "Requisitos para subir BOM" #: part/templates/part/upload_bom.html:39 msgid "The BOM file must contain the required named columns as provided in the " -msgstr "" +msgstr "El archivo BOM debe contener las columnas con nombre requeridos como se indica en el " #: part/templates/part/upload_bom.html:39 msgid "BOM Upload Template" -msgstr "" +msgstr "Plantilla de subida BOM" #: part/templates/part/upload_bom.html:40 msgid "Each part must already exist in the database" -msgstr "" +msgstr "Cada parte debe existir en la base de datos" #: part/templates/part/variant_part.html:9 msgid "Create new part variant" -msgstr "" +msgstr "Crear nueva variante de pieza" #: part/templates/part/variant_part.html:10 #, python-format msgid "Create a new variant of template '%(full_name)s'." -msgstr "" +msgstr "Crear una nueva variante de la plantilla '%(full_name)s'." #: part/templatetags/inventree_extras.py:125 msgid "Unknown database" -msgstr "" +msgstr "Base de datos desconocida" #: part/views.py:90 msgid "Set Part Category" -msgstr "" +msgstr "Definir Categoría de Parte" #: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" -msgstr "" +msgstr "Establecer categoría para {n} partes" #: part/views.py:212 msgid "Match References" -msgstr "" +msgstr "Coincidir Referencias" #: part/views.py:509 msgid "None" -msgstr "" +msgstr "Ninguna" #: part/views.py:568 msgid "Part QR Code" -msgstr "" +msgstr "Código QR de Parte" #: part/views.py:670 msgid "Select Part Image" -msgstr "" +msgstr "Seleccionar Imagen de Parte" #: part/views.py:696 msgid "Updated part image" -msgstr "" +msgstr "Imagen de parte actualizada" #: part/views.py:699 msgid "Part image not found" -msgstr "" +msgstr "Imagen de parte no encontrada" #: part/views.py:850 msgid "Confirm Part Deletion" -msgstr "" +msgstr "Confirmar Eliminación de Parte" #: part/views.py:857 msgid "Part was deleted" -msgstr "" +msgstr "Parte fue eliminada" #: part/views.py:866 msgid "Part Pricing" -msgstr "" +msgstr "Precio de parte" #: part/views.py:1015 msgid "Create Part Parameter Template" -msgstr "" +msgstr "Crear plantilla Parámetro de Parte" #: part/views.py:1025 msgid "Edit Part Parameter Template" -msgstr "" +msgstr "Crear plantilla Parámetro de Parte" #: part/views.py:1032 msgid "Delete Part Parameter Template" -msgstr "" +msgstr "Eliminar Plantilla de Parámetros de Parte" #: part/views.py:1091 templates/js/translated/part.js:315 msgid "Edit Part Category" -msgstr "" +msgstr "Editar Categoría de Parte" #: part/views.py:1129 msgid "Delete Part Category" -msgstr "" +msgstr "Eliminar Categoría de Parte" #: part/views.py:1135 msgid "Part category was deleted" -msgstr "" +msgstr "Categoría de parte eliminada" #: part/views.py:1144 msgid "Create Category Parameter Template" -msgstr "" +msgstr "Crear plantilla de parámetro de categoría" #: part/views.py:1245 msgid "Edit Category Parameter Template" -msgstr "" +msgstr "Editar plantilla de parámetro de categoría" #: part/views.py:1301 msgid "Delete Category Parameter Template" -msgstr "" +msgstr "Eliminar plantilla de parámetro de categoría" #: part/views.py:1323 msgid "Added new price break" -msgstr "" +msgstr "Nuevo diferencial de precio añadido" #: part/views.py:1399 msgid "Edit Internal Price Break" -msgstr "" +msgstr "Editar Diferencial de Precio Interno" #: part/views.py:1407 msgid "Delete Internal Price Break" -msgstr "" +msgstr "Eliminar Diferencial de Precio Interno" #: plugin/integration.py:138 msgid "No author found" -msgstr "" +msgstr "No se encontró autor" #: plugin/integration.py:152 msgid "No date found" -msgstr "" +msgstr "No se encontró fecha" #: plugin/models.py:26 msgid "Plugin Configuration" -msgstr "" +msgstr "Configuración del Plugin" #: plugin/models.py:27 msgid "Plugin Configurations" -msgstr "" +msgstr "Configuraciones del Plug-in" #: plugin/models.py:32 msgid "Key" -msgstr "" +msgstr "Clave" #: plugin/models.py:33 msgid "Key of plugin" -msgstr "" +msgstr "Clave del plugin" #: plugin/models.py:41 msgid "PluginName of the plugin" -msgstr "" +msgstr "Nombre del plugin" #: plugin/models.py:47 msgid "Is the plugin active" -msgstr "" +msgstr "Está activo el plugin" #: plugin/models.py:199 msgid "Plugin" -msgstr "" +msgstr "Plugin" #: plugin/samples/integration/sample.py:42 msgid "Enable PO" -msgstr "" +msgstr "Habilitar PO" #: plugin/samples/integration/sample.py:43 msgid "Enable PO functionality in InvenTree interface" -msgstr "" +msgstr "Habilitar la funcionalidad PO en la interfaz de InvenTree" #: plugin/samples/integration/sample.py:48 msgid "API Key" -msgstr "" +msgstr "Clave API" #: plugin/samples/integration/sample.py:49 msgid "Key required for accessing external API" -msgstr "" +msgstr "Clave necesaria para acceder a la API externa" #: plugin/samples/integration/sample.py:52 msgid "Numerical" -msgstr "" +msgstr "Numérico" #: plugin/samples/integration/sample.py:53 msgid "A numerical setting" -msgstr "" +msgstr "Una configuración numérica" #: plugin/samples/integration/sample.py:58 msgid "Choice Setting" -msgstr "" +msgstr "Configuración de Elección" #: plugin/samples/integration/sample.py:59 msgid "A setting with multiple choices" -msgstr "" +msgstr "Un ajuste con múltiples opciones" #: plugin/serializers.py:50 msgid "Source URL" -msgstr "" +msgstr "URL de origen" #: plugin/serializers.py:51 msgid "Source for the package - this can be a custom registry or a VCS path" -msgstr "" +msgstr "Fuente del paquete - puede ser un registro personalizado o una ruta VCS" #: plugin/serializers.py:56 msgid "Package Name" -msgstr "" +msgstr "Nombre de Paquete" #: plugin/serializers.py:57 msgid "Name for the Plugin Package - can also contain a version indicator" -msgstr "" +msgstr "Nombre del paquete Plug-in - también puede contener un indicador de versión" #: plugin/serializers.py:60 msgid "Confirm plugin installation" -msgstr "" +msgstr "Confirmar instalación del plugin" #: plugin/serializers.py:61 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." -msgstr "" +msgstr "Esto instalará este plug-in en la instancia actual. La instancia entrará en mantenimiento." #: plugin/serializers.py:76 msgid "Installation not confirmed" -msgstr "" +msgstr "Instalación no confirmada" #: plugin/serializers.py:78 msgid "Either packagename of URL must be provided" -msgstr "" +msgstr "Debe proporcionar cualquier nombre de paquete de la URL" #: report/api.py:234 report/api.py:278 #, python-brace-format msgid "Template file '{filename}' is missing or does not exist" -msgstr "" +msgstr "Falta el archivo de plantilla '{filename}' o no existe" #: report/models.py:182 msgid "Template name" -msgstr "" +msgstr "Nombre de la plantilla" #: report/models.py:188 msgid "Report template file" -msgstr "" +msgstr "Plantilla de informe" #: report/models.py:195 msgid "Report template description" -msgstr "" +msgstr "Descripción de la plantilla de informe" #: report/models.py:201 msgid "Report revision number (auto-increments)" -msgstr "" +msgstr "Número de revisión del informe (autoincremental)" #: report/models.py:292 msgid "Pattern for generating report filenames" -msgstr "" +msgstr "Patrón para generar nombres de archivo" #: report/models.py:299 msgid "Report template is enabled" -msgstr "" +msgstr "Plantilla de informe está habilitada" #: report/models.py:323 msgid "StockItem query filters (comma-separated list of key=value pairs)" -msgstr "" +msgstr "Filtros de consulta de Stock (lista separada por comas de pares clave=valor)" #: report/models.py:331 msgid "Include Installed Tests" -msgstr "" +msgstr "Incluye Pruebas Instaladas" #: report/models.py:332 msgid "Include test results for stock items installed inside assembled item" -msgstr "" +msgstr "Incluye resultados de prueba para artículos de stock instalados dentro del artículo ensamblado" #: report/models.py:382 msgid "Build Filters" -msgstr "" +msgstr "Crear filtros" #: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Crear filtros de consulta (lista separada por comas de pares clave=valor" #: report/models.py:425 msgid "Part Filters" -msgstr "" +msgstr "Filtros de partes" #: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Filtros de búsqueda de partes (lista separada por comas de pares clave=valor" #: report/models.py:460 msgid "Purchase order query filters" -msgstr "" +msgstr "Filtros de búsqueda de orden de compra" #: report/models.py:498 msgid "Sales order query filters" -msgstr "" +msgstr "Filtros de búsqueda de pedidos de ventas" #: report/models.py:548 msgid "Snippet" -msgstr "" +msgstr "Fragmento" #: report/models.py:549 msgid "Report snippet file" -msgstr "" +msgstr "Archivo de reporte snippet" #: report/models.py:553 msgid "Snippet file description" -msgstr "" +msgstr "Descripción de archivo de fragmento" #: report/models.py:588 msgid "Asset" -msgstr "" +msgstr "Activo" #: report/models.py:589 msgid "Report asset file" -msgstr "" +msgstr "Reportar archivo de activos" #: report/models.py:592 msgid "Asset file description" -msgstr "" +msgstr "Descripción del archivo de activos" #: report/templates/report/inventree_build_order_base.html:147 msgid "Required For" -msgstr "" +msgstr "Requerido para" #: report/templates/report/inventree_test_report_base.html:21 msgid "Stock Item Test Report" -msgstr "" +msgstr "Artículo Stock Informe de prueba" #: report/templates/report/inventree_test_report_base.html:79 #: stock/models.py:519 stock/templates/stock/item_base.html:158 @@ -5539,55 +5545,55 @@ msgstr "" #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 #: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424 msgid "Serial Number" -msgstr "" +msgstr "Número de serie" #: report/templates/report/inventree_test_report_base.html:88 msgid "Test Results" -msgstr "" +msgstr "Resultados de la Prueba" #: report/templates/report/inventree_test_report_base.html:93 #: stock/models.py:1976 msgid "Test" -msgstr "" +msgstr "Prueba" #: report/templates/report/inventree_test_report_base.html:94 #: stock/models.py:1982 msgid "Result" -msgstr "" +msgstr "Resultado" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:38 #: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" -msgstr "" +msgstr "Fecha" #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" -msgstr "" +msgstr "Pasada" #: report/templates/report/inventree_test_report_base.html:110 msgid "Fail" -msgstr "" +msgstr "Fallo" #: report/templates/report/inventree_test_report_base.html:123 #: stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" -msgstr "" +msgstr "Elementos instalados" #: report/templates/report/inventree_test_report_base.html:137 #: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757 #: templates/js/translated/stock.js:2909 msgid "Serial" -msgstr "" +msgstr "Serial" #: stock/api.py:501 msgid "Quantity is required" -msgstr "" +msgstr "Cantidad requerida" #: stock/api.py:508 msgid "Valid part must be supplied" -msgstr "" +msgstr "Debe suministrarse una pieza válida" #: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" @@ -5597,305 +5603,305 @@ msgstr "" #: stock/templates/stock/item_base.html:195 #: templates/js/translated/stock.js:1833 msgid "Expiry Date" -msgstr "" +msgstr "Fecha de Expiración" #: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" -msgstr "" +msgstr "Fecha de caducidad para este artículo de stock" #: stock/forms.py:78 msgid "Enter unique serial numbers (or leave blank)" -msgstr "" +msgstr "Introduzca números de serie únicos (o deje en blanco)" #: stock/forms.py:133 msgid "Destination for serialized stock (by default, will remain in current location)" -msgstr "" +msgstr "Destino para el stock serializado (por defecto, permanecerá en la ubicación actual)" #: stock/forms.py:135 msgid "Serial numbers" -msgstr "" +msgstr "Números de serie" #: stock/forms.py:135 msgid "Unique serial numbers (must match quantity)" -msgstr "" +msgstr "Números de serie únicos (deben coincidir con la cantidad)" #: stock/forms.py:137 stock/forms.py:171 msgid "Add transaction note (optional)" -msgstr "" +msgstr "Añadir nota de transacción (opcional)" #: stock/forms.py:169 msgid "Destination location for uninstalled items" -msgstr "" +msgstr "Ubicación de destino para elementos desinstalados" #: stock/forms.py:173 msgid "Confirm uninstall" -msgstr "" +msgstr "Confirmar desinstalación" #: stock/forms.py:173 msgid "Confirm removal of installed stock items" -msgstr "" +msgstr "Confirmar la eliminación de los artículos de stock instalados" #: stock/models.py:62 stock/models.py:613 #: stock/templates/stock/item_base.html:418 msgid "Owner" -msgstr "" +msgstr "Propietario" #: stock/models.py:63 stock/models.py:614 msgid "Select Owner" -msgstr "" +msgstr "Seleccionar Propietario" #: stock/models.py:338 msgid "StockItem with this serial number already exists" -msgstr "" +msgstr "Ya existe un Stock con este número de serie" #: stock/models.py:374 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" -msgstr "" +msgstr "Tipo de pieza ('{pf}') debe ser {pe}" #: stock/models.py:384 stock/models.py:393 msgid "Quantity must be 1 for item with a serial number" -msgstr "" +msgstr "La cantidad debe ser 1 para el artículo con un número de serie" #: stock/models.py:385 msgid "Serial number cannot be set if quantity greater than 1" -msgstr "" +msgstr "Número de serie no se puede establecer si la cantidad es mayor que 1" #: stock/models.py:407 msgid "Item cannot belong to itself" -msgstr "" +msgstr "El objeto no puede pertenecer a sí mismo" #: stock/models.py:413 msgid "Item must have a build reference if is_building=True" -msgstr "" +msgstr "El elemento debe tener una referencia de construcción si is_building=True" #: stock/models.py:420 msgid "Build reference does not point to the same part object" -msgstr "" +msgstr "La referencia de la construcción no apunta al mismo objeto de parte" #: stock/models.py:463 msgid "Parent Stock Item" -msgstr "Artículo de stock principal" +msgstr "Artículo de stock padre" #: stock/models.py:472 msgid "Base part" -msgstr "" +msgstr "Parte base" #: stock/models.py:480 msgid "Select a matching supplier part for this stock item" -msgstr "" +msgstr "Seleccione una parte del proveedor correspondiente para este artículo de stock" #: stock/models.py:486 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" -msgstr "" +msgstr "Ubicación de Stock" #: stock/models.py:489 msgid "Where is this stock item located?" -msgstr "" +msgstr "¿Dónde se encuentra este artículo de stock?" #: stock/models.py:496 msgid "Packaging this stock item is stored in" -msgstr "" +msgstr "Empaquetar este elemento de stock se almacena en" #: stock/models.py:502 stock/templates/stock/item_base.html:300 msgid "Installed In" -msgstr "" +msgstr "Instalado en" #: stock/models.py:505 msgid "Is this item installed in another item?" -msgstr "" +msgstr "¿Está este elemento instalado en otro elemento?" #: stock/models.py:521 msgid "Serial number for this item" -msgstr "" +msgstr "Número de serie para este elemento" #: stock/models.py:535 msgid "Batch code for this stock item" -msgstr "" +msgstr "Código de lote para este artículo de stock" #: stock/models.py:539 msgid "Stock Quantity" -msgstr "" +msgstr "Cantidad de Stock" #: stock/models.py:548 msgid "Source Build" -msgstr "" +msgstr "Build de origen" #: stock/models.py:550 msgid "Build for this stock item" -msgstr "" +msgstr "Build para este item de stock" #: stock/models.py:561 msgid "Source Purchase Order" -msgstr "" +msgstr "Orden de compra de origen" #: stock/models.py:564 msgid "Purchase order for this stock item" -msgstr "" +msgstr "Orden de compra para este artículo de stock" #: stock/models.py:570 msgid "Destination Sales Order" -msgstr "" +msgstr "Orden de venta de destino" #: stock/models.py:577 msgid "Expiry date for stock item. Stock will be considered expired after this date" -msgstr "" +msgstr "Fecha de caducidad del artículo de stock. El stock se considerará caducado después de esta fecha" #: stock/models.py:590 msgid "Delete on deplete" -msgstr "" +msgstr "Eliminar al agotar" #: stock/models.py:590 msgid "Delete this Stock Item when stock is depleted" -msgstr "" +msgstr "Eliminar este artículo de stock cuando se agoten las existencias" #: stock/models.py:600 stock/templates/stock/item.html:128 msgid "Stock Item Notes" -msgstr "" +msgstr "Notas del artículo de stock" #: stock/models.py:609 msgid "Single unit purchase price at time of purchase" -msgstr "" +msgstr "Precio de compra único en el momento de la compra" #: stock/models.py:1096 msgid "Part is not set as trackable" -msgstr "" +msgstr "La parte no está establecida como rastreable" #: stock/models.py:1102 msgid "Quantity must be integer" -msgstr "" +msgstr "Cantidad debe ser un entero" #: stock/models.py:1108 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" -msgstr "" +msgstr "La cantidad no debe exceder la cantidad disponible de existencias ({n})" #: stock/models.py:1111 msgid "Serial numbers must be a list of integers" -msgstr "" +msgstr "Los números de serie deben ser una lista de enteros" #: stock/models.py:1114 msgid "Quantity does not match serial numbers" -msgstr "" +msgstr "La cantidad no coincide con los números de serie" #: stock/models.py:1121 #, python-brace-format msgid "Serial numbers already exist: {exists}" -msgstr "" +msgstr "Los números de serie ya existen: {exists}" #: stock/models.py:1192 msgid "Stock item has been assigned to a sales order" -msgstr "" +msgstr "Artículo de stock ha sido asignado a un pedido de venta" #: stock/models.py:1195 msgid "Stock item is installed in another item" -msgstr "" +msgstr "Artículo de stock está instalado en otro artículo" #: stock/models.py:1198 msgid "Stock item contains other items" -msgstr "" +msgstr "Artículo de stock contiene otros artículos" #: stock/models.py:1201 msgid "Stock item has been assigned to a customer" -msgstr "" +msgstr "Artículo de stock ha sido asignado a un cliente" #: stock/models.py:1204 msgid "Stock item is currently in production" -msgstr "" +msgstr "El artículo de stock está en producción" #: stock/models.py:1207 msgid "Serialized stock cannot be merged" -msgstr "" +msgstr "Stock serializado no puede ser combinado" #: stock/models.py:1214 stock/serializers.py:832 msgid "Duplicate stock items" -msgstr "" +msgstr "Artículos de Stock Duplicados" #: stock/models.py:1218 msgid "Stock items must refer to the same part" -msgstr "" +msgstr "Los artículos de stock deben referirse a la misma parte" #: stock/models.py:1222 msgid "Stock items must refer to the same supplier part" -msgstr "" +msgstr "Los artículos de stock deben referirse a la misma parte del proveedor" #: stock/models.py:1226 msgid "Stock status codes must match" -msgstr "" +msgstr "Los códigos de estado del stock deben coincidir" #: stock/models.py:1397 msgid "StockItem cannot be moved as it is not in stock" -msgstr "" +msgstr "Stock no se puede mover porque no está en stock" #: stock/models.py:1896 msgid "Entry notes" -msgstr "" +msgstr "Notas de entrada" #: stock/models.py:1953 msgid "Value must be provided for this test" -msgstr "" +msgstr "Debe proporcionarse un valor para esta prueba" #: stock/models.py:1959 msgid "Attachment must be uploaded for this test" -msgstr "" +msgstr "El archivo adjunto debe ser subido para esta prueba" #: stock/models.py:1977 msgid "Test name" -msgstr "" +msgstr "Nombre del test" #: stock/models.py:1983 msgid "Test result" -msgstr "" +msgstr "Resultado de la prueba" #: stock/models.py:1989 msgid "Test output value" -msgstr "" +msgstr "Valor de salida de prueba" #: stock/models.py:1996 msgid "Test result attachment" -msgstr "" +msgstr "Adjunto de resultados de prueba" #: stock/models.py:2002 msgid "Test notes" -msgstr "" +msgstr "Notas de prueba" #: stock/serializers.py:173 msgid "Purchase price of this stock item" -msgstr "" +msgstr "Precio de compra de este artículo de stock" #: stock/serializers.py:180 msgid "Purchase currency of this stock item" -msgstr "" +msgstr "Moneda de compra de ítem de stock" #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" -msgstr "" +msgstr "Introduzca el número de elementos de stock para serializar" #: stock/serializers.py:309 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" -msgstr "" +msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})" #: stock/serializers.py:315 msgid "Enter serial numbers for new items" -msgstr "" +msgstr "Introduzca números de serie para nuevos elementos" #: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 msgid "Destination stock location" -msgstr "" +msgstr "Ubicación de stock de destino" #: stock/serializers.py:333 msgid "Optional note field" -msgstr "" +msgstr "Campo de nota opcional" #: stock/serializers.py:346 msgid "Serial numbers cannot be assigned to this part" -msgstr "" +msgstr "Los números de serie no se pueden asignar a esta parte" #: stock/serializers.py:363 stock/views.py:1108 msgid "Serial numbers already exist" -msgstr "" +msgstr "Números de serie ya existen" #: stock/serializers.py:405 msgid "Select stock item to install" @@ -5911,241 +5917,241 @@ msgstr "" #: stock/serializers.py:646 msgid "Part must be salable" -msgstr "" +msgstr "La parte debe ser vendible" #: stock/serializers.py:650 msgid "Item is allocated to a sales order" -msgstr "" +msgstr "El artículo está asignado a una orden de venta" #: stock/serializers.py:654 msgid "Item is allocated to a build order" -msgstr "" +msgstr "El artículo está asignado a una orden de creación" #: stock/serializers.py:684 msgid "Customer to assign stock items" -msgstr "" +msgstr "Cliente para asignar elementos de stock" #: stock/serializers.py:690 msgid "Selected company is not a customer" -msgstr "" +msgstr "La empresa seleccionada no es un cliente" #: stock/serializers.py:698 msgid "Stock assignment notes" -msgstr "" +msgstr "Notas de asignación de stock" #: stock/serializers.py:708 stock/serializers.py:938 msgid "A list of stock items must be provided" -msgstr "" +msgstr "Debe proporcionarse una lista de artículos de stock" #: stock/serializers.py:796 msgid "Stock merging notes" -msgstr "" +msgstr "Notas de fusión de stock" #: stock/serializers.py:801 msgid "Allow mismatched suppliers" -msgstr "" +msgstr "Permitir proveedores no coincidentes" #: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" -msgstr "" +msgstr "Permitir fusionar artículos de stock con diferentes piezas de proveedor" #: stock/serializers.py:807 msgid "Allow mismatched status" -msgstr "" +msgstr "Permitir estado no coincidente" #: stock/serializers.py:808 msgid "Allow stock items with different status codes to be merged" -msgstr "" +msgstr "Permitir fusionar elementos de stock con diferentes códigos de estado" #: stock/serializers.py:818 msgid "At least two stock items must be provided" -msgstr "" +msgstr "Debe proporcionar al menos dos artículos de stock" #: stock/serializers.py:900 msgid "StockItem primary key value" -msgstr "" +msgstr "Valor de clave primaria de Stock" #: stock/serializers.py:928 msgid "Stock transaction notes" -msgstr "" +msgstr "Notas de transacción de stock" #: stock/templates/stock/item.html:18 msgid "Stock Tracking Information" -msgstr "" +msgstr "Información de Seguimiento de Stock" #: stock/templates/stock/item.html:29 msgid "New Entry" -msgstr "" +msgstr "Nueva Entrada" #: stock/templates/stock/item.html:48 msgid "Stock Item Allocations" -msgstr "" +msgstr "Asignaciones de Artículos de Stock" #: stock/templates/stock/item.html:64 msgid "Child Stock Items" -msgstr "" +msgstr "Elementos de Stock Hijos" #: stock/templates/stock/item.html:72 msgid "This stock item does not have any child items" -msgstr "" +msgstr "Este artículo de stock no tiene ningún elemento secundario" #: stock/templates/stock/item.html:81 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" -msgstr "" +msgstr "Datos de Prueba" #: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57 msgid "Test Report" -msgstr "" +msgstr "Informe de Prueba" #: stock/templates/stock/item.html:89 msgid "Delete Test Data" -msgstr "" +msgstr "Eliminar Datos de Prueba" #: stock/templates/stock/item.html:93 msgid "Add Test Data" -msgstr "" +msgstr "Añadir Datos de Prueba" #: stock/templates/stock/item.html:150 msgid "Installed Stock Items" -msgstr "" +msgstr "Elementos de Stock instalados" #: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018 msgid "Install Stock Item" -msgstr "" +msgstr "Instalar elemento de stock" #: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480 msgid "Add Test Result" -msgstr "" +msgstr "Añadir Resultado de Prueba" #: stock/templates/stock/item_base.html:42 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" -msgstr "" +msgstr "Desvincular Código de Barras" #: stock/templates/stock/item_base.html:44 msgid "Link Barcode" -msgstr "" +msgstr "Vincular Código de Barras" #: stock/templates/stock/item_base.html:46 templates/stock_table.html:24 msgid "Scan to Location" -msgstr "" +msgstr "Escanear a la ubicación" #: stock/templates/stock/item_base.html:53 msgid "Printing actions" -msgstr "" +msgstr "Acciones de impresión" #: stock/templates/stock/item_base.html:72 msgid "Stock adjustment actions" -msgstr "" +msgstr "Acciones de ajuste de stock" #: stock/templates/stock/item_base.html:76 #: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" -msgstr "" +msgstr "Contar stock" #: stock/templates/stock/item_base.html:79 templates/stock_table.html:48 msgid "Add stock" -msgstr "" +msgstr "Añadir stock" #: stock/templates/stock/item_base.html:82 templates/stock_table.html:49 msgid "Remove stock" -msgstr "" +msgstr "Eliminar stock" #: stock/templates/stock/item_base.html:85 msgid "Serialize stock" -msgstr "" +msgstr "Serializar stock" #: stock/templates/stock/item_base.html:89 #: stock/templates/stock/location.html:57 msgid "Transfer stock" -msgstr "" +msgstr "Transferir stock" #: stock/templates/stock/item_base.html:92 templates/stock_table.html:54 msgid "Assign to customer" -msgstr "" +msgstr "Asignar a cliente" #: stock/templates/stock/item_base.html:95 msgid "Return to stock" -msgstr "" +msgstr "Regresar al stock" #: stock/templates/stock/item_base.html:98 msgid "Uninstall stock item" -msgstr "" +msgstr "Desinstalar artículo de stock" #: stock/templates/stock/item_base.html:98 msgid "Uninstall" -msgstr "" +msgstr "Desinstalar" #: stock/templates/stock/item_base.html:102 msgid "Install stock item" -msgstr "" +msgstr "Instalar elemento de stock" #: stock/templates/stock/item_base.html:102 msgid "Install" -msgstr "" +msgstr "Instalar" #: stock/templates/stock/item_base.html:117 msgid "Convert to variant" -msgstr "" +msgstr "Convertir a variante" #: stock/templates/stock/item_base.html:120 msgid "Duplicate stock item" -msgstr "" +msgstr "Duplicar artículo" #: stock/templates/stock/item_base.html:122 msgid "Edit stock item" -msgstr "" +msgstr "Elemento de stock editado" #: stock/templates/stock/item_base.html:125 msgid "Delete stock item" -msgstr "" +msgstr "Eliminar elemento de stock" #: stock/templates/stock/item_base.html:163 msgid "previous page" -msgstr "" +msgstr "página anterior" #: stock/templates/stock/item_base.html:163 msgid "Navigate to previous serial number" -msgstr "" +msgstr "Navegar al número de serie anterior" #: stock/templates/stock/item_base.html:172 msgid "next page" -msgstr "" +msgstr "página siguiente" #: stock/templates/stock/item_base.html:172 msgid "Navigate to next serial number" -msgstr "" +msgstr "Navegar al siguiente número de serie" #: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" -msgstr "" +msgstr "Este ítem expiró el %(item.expiry_date)s" #: stock/templates/stock/item_base.html:199 #: templates/js/translated/table_filters.js:252 msgid "Expired" -msgstr "" +msgstr "Expirado" #: stock/templates/stock/item_base.html:201 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" -msgstr "" +msgstr "Este ítem expira el %(item.expiry_date)s" #: stock/templates/stock/item_base.html:201 #: templates/js/translated/table_filters.js:258 msgid "Stale" -msgstr "" +msgstr "Desactualizado" #: stock/templates/stock/item_base.html:208 #: templates/js/translated/stock.js:1846 msgid "Last Updated" -msgstr "" +msgstr "Última actualización" #: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" -msgstr "Último Inventario" +msgstr "Último inventario" #: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" @@ -6153,901 +6159,901 @@ msgstr "Ningún inventario realizado" #: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." -msgstr "" +msgstr "No estás en la lista de propietarios de este artículo. Este artículo de stock no puede ser editado." #: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." -msgstr "" +msgstr "Este artículo de stock está en producción y no puede ser editado." #: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." -msgstr "" +msgstr "Editar el elemento de stock desde la vista de construcción." #: stock/templates/stock/item_base.html:256 msgid "This stock item has not passed all required tests" -msgstr "" +msgstr "Este artículo de stock no ha pasado todas las pruebas requeridas" #: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" -msgstr "" +msgstr "Este artículo de stock está asignado a la orden de venta" #: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" -msgstr "" +msgstr "Este artículo de stock está asignado al orden de construcción" #: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." -msgstr "" +msgstr "Este artículo de stock está serializado - tiene un número de serie único y la cantidad no se puede ajustar." #: stock/templates/stock/item_base.html:319 #: templates/js/translated/build.js:1317 msgid "No location set" -msgstr "" +msgstr "Ubicación no establecida" #: stock/templates/stock/item_base.html:326 msgid "Barcode Identifier" -msgstr "" +msgstr "Identificador de Código de Barras" #: stock/templates/stock/item_base.html:368 msgid "Parent Item" -msgstr "Artículo principal" +msgstr "Elemento padre" #: stock/templates/stock/item_base.html:386 msgid "No manufacturer set" -msgstr "" +msgstr "Ningún fabricante establecido" #: stock/templates/stock/item_base.html:411 msgid "Tests" -msgstr "" +msgstr "Pruebas" #: stock/templates/stock/item_base.html:492 msgid "Edit Stock Status" -msgstr "" +msgstr "Editar Estado del Stock" #: stock/templates/stock/item_delete.html:9 msgid "Are you sure you want to delete this stock item?" -msgstr "" +msgstr "¿Está seguro que desea eliminar este elemento de stock?" #: stock/templates/stock/item_delete.html:12 #, python-format msgid "This will remove %(qty)s units of %(full_name)s from stock." -msgstr "" +msgstr "Esto eliminará %(qty)s unidades de %(full_name)s del stock." #: stock/templates/stock/item_serialize.html:5 msgid "Create serialized items from this stock item." -msgstr "" +msgstr "Crear artículos serializados a partir de este artículo de stock." #: stock/templates/stock/item_serialize.html:7 msgid "Select quantity to serialize, and unique serial numbers." -msgstr "" +msgstr "Seleccione la cantidad para serializar y números de serie únicos." #: stock/templates/stock/location.html:37 msgid "Check-in Items" -msgstr "" +msgstr "Objetos de Check-in" #: stock/templates/stock/location.html:65 msgid "Location actions" -msgstr "" +msgstr "Acciones de ubicación" #: stock/templates/stock/location.html:67 msgid "Edit location" -msgstr "" +msgstr "Editar ubicación" #: stock/templates/stock/location.html:69 msgid "Delete location" -msgstr "" +msgstr "Eliminar ubicación" #: stock/templates/stock/location.html:79 msgid "Create new stock location" -msgstr "" +msgstr "Crear nueva ubicación de stock" #: stock/templates/stock/location.html:80 msgid "New Location" -msgstr "" +msgstr "Nueva Ubicación" #: stock/templates/stock/location.html:99 #: stock/templates/stock/location.html:105 msgid "Location Path" -msgstr "" +msgstr "Ruta de Ubicación" #: stock/templates/stock/location.html:106 msgid "Top level stock location" -msgstr "" +msgstr "Ubicación de stock superior" #: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." -msgstr "" +msgstr "No estás en la lista de propietarios de esta ubicación. Esta ubicación de stock no puede ser editada." #: stock/templates/stock/location.html:132 #: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" -msgstr "" +msgstr "Sub-ubicación" #: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:109 users/models.py:42 msgid "Stock Locations" -msgstr "" +msgstr "Ubicaciones de Stock" #: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" -msgstr "" +msgstr "Acciones de impresión" #: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" -msgstr "" +msgstr "Imprimir Etiquetas" #: stock/templates/stock/location_delete.html:7 msgid "Are you sure you want to delete this stock location?" -msgstr "" +msgstr "¿Está seguro que desea eliminar esta ubicación?" #: stock/templates/stock/stock_app_base.html:16 msgid "Loading..." -msgstr "" +msgstr "Cargando..." #: stock/templates/stock/stock_sidebar.html:5 msgid "Stock Tracking" -msgstr "" +msgstr "Seguimiento de Stock" #: stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" -msgstr "" +msgstr "Elementos secundarios" #: stock/templates/stock/stock_uninstall.html:8 msgid "The following stock items will be uninstalled" -msgstr "" +msgstr "Se desinstalarán los siguientes elementos de stock" #: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730 msgid "Convert Stock Item" -msgstr "" +msgstr "Convertir artículo de stock" #: stock/templates/stock/stockitem_convert.html:8 #, python-format msgid "This stock item is current an instance of %(part)s" -msgstr "" +msgstr "Este artículo de stock es actualmente una instancia de %(part)s" #: stock/templates/stock/stockitem_convert.html:9 msgid "It can be converted to one of the part variants listed below." -msgstr "" +msgstr "Puede ser convertido a una de las variantes de piezas listadas a continuación." #: stock/templates/stock/stockitem_convert.html:14 msgid "This action cannot be easily undone" -msgstr "" +msgstr "Esta acción no se puede deshacer fácilmente" #: stock/templates/stock/tracking_delete.html:6 msgid "Are you sure you want to delete this stock tracking entry?" -msgstr "" +msgstr "¿Está seguro que desea eliminar este elemento de stock?" #: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" -msgstr "" +msgstr "Editar ubicación de stock" #: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117 msgid "Owner is required (ownership control is enabled)" -msgstr "" +msgstr "El propietario es requerido (el control de propiedad está habilitado)" #: stock/views.py:284 msgid "Stock Location QR code" -msgstr "" +msgstr "Código QR de ubicación de stock" #: stock/views.py:303 msgid "Return to Stock" -msgstr "" +msgstr "Volver a Stock" #: stock/views.py:312 msgid "Specify a valid location" -msgstr "" +msgstr "Especifique una ubicación válida" #: stock/views.py:323 msgid "Stock item returned from customer" -msgstr "" +msgstr "Artículo de stock devuelto por el cliente" #: stock/views.py:334 msgid "Delete All Test Data" -msgstr "" +msgstr "Borrar todos los datos de prueba" #: stock/views.py:351 msgid "Confirm test data deletion" -msgstr "" +msgstr "Confirmar eliminación de datos de prueba" #: stock/views.py:352 msgid "Check the confirmation box" -msgstr "" +msgstr "Marque la casilla de confirmación" #: stock/views.py:456 msgid "Stock Item QR Code" -msgstr "" +msgstr "Código QR de Item de Stock" #: stock/views.py:481 msgid "Uninstall Stock Items" -msgstr "" +msgstr "Desinstalar artículos de stock" #: stock/views.py:578 templates/js/translated/stock.js:1075 msgid "Confirm stock adjustment" -msgstr "" +msgstr "Confirmar ajuste de stock" #: stock/views.py:589 msgid "Uninstalled stock items" -msgstr "" +msgstr "Artículos de stock desinstalados" #: stock/views.py:611 templates/js/translated/stock.js:333 msgid "Edit Stock Item" -msgstr "" +msgstr "Editar artículo de stock" #: stock/views.py:761 msgid "Create new Stock Location" -msgstr "" +msgstr "Crear nueva ubicación de stock" #: stock/views.py:862 msgid "Create new Stock Item" -msgstr "" +msgstr "Crear nuevo artículo de stock" #: stock/views.py:1004 templates/js/translated/stock.js:313 msgid "Duplicate Stock Item" -msgstr "" +msgstr "Duplicar artículo de stock" #: stock/views.py:1086 msgid "Quantity cannot be negative" -msgstr "" +msgstr "La cantidad no puede ser negativa" #: stock/views.py:1186 msgid "Delete Stock Location" -msgstr "" +msgstr "Eliminar ubicación de stock" #: stock/views.py:1199 msgid "Delete Stock Item" -msgstr "" +msgstr "Eliminar elemento de stock" #: stock/views.py:1210 msgid "Delete Stock Tracking Entry" -msgstr "" +msgstr "Eliminar registro de stock" #: stock/views.py:1217 msgid "Edit Stock Tracking Entry" -msgstr "" +msgstr "Editar registro de stock" #: stock/views.py:1226 msgid "Add Stock Tracking Entry" -msgstr "" +msgstr "Añadir entrada de seguimiento de stock" #: templates/403.html:5 templates/403.html:11 msgid "Permission Denied" -msgstr "" +msgstr "Permiso Denegado" #: templates/403.html:14 msgid "You do not have permission to view this page." -msgstr "" +msgstr "No tiene permisos para ver esta página." #: templates/404.html:5 templates/404.html:11 msgid "Page Not Found" -msgstr "" +msgstr "Página No Encontrada" #: templates/404.html:14 msgid "The requested page does not exist" -msgstr "" +msgstr "La página solicitada no existe" #: templates/500.html:5 templates/500.html:11 msgid "Internal Server Error" -msgstr "" +msgstr "Error Interno Del Servidor" #: templates/500.html:14 msgid "The InvenTree server raised an internal error" -msgstr "" +msgstr "El servidor de InvenTree ha generado un error interno" #: templates/500.html:15 msgid "Refer to the error log in the admin interface for further details" -msgstr "" +msgstr "Consulte el registro de errores en la interfaz de administración para más detalles" #: templates/503.html:10 templates/503.html:35 msgid "Site is in Maintenance" -msgstr "" +msgstr "El Sitio está en Mantenimiento" #: templates/503.html:41 msgid "The site is currently in maintenance and should be up again soon!" -msgstr "" +msgstr "El sitio está actualmente en mantenimiento y debería estar listo pronto!" #: templates/InvenTree/index.html:7 msgid "Index" -msgstr "" +msgstr "Índice" #: templates/InvenTree/index.html:88 msgid "Subscribed Parts" -msgstr "" +msgstr "Partes Suscritas" #: templates/InvenTree/index.html:98 msgid "Subscribed Categories" -msgstr "" +msgstr "Categorías Suscritas" #: templates/InvenTree/index.html:108 msgid "Latest Parts" -msgstr "" +msgstr "Últimas Partes" #: templates/InvenTree/index.html:119 msgid "BOM Waiting Validation" -msgstr "" +msgstr "Validación de BOM en espera" #: templates/InvenTree/index.html:145 msgid "Recently Updated" -msgstr "" +msgstr "Actualizado Recientemente" #: templates/InvenTree/index.html:168 msgid "Depleted Stock" -msgstr "" +msgstr "Stock Agotado" #: templates/InvenTree/index.html:191 msgid "Expired Stock" -msgstr "" +msgstr "Stock Caducado" #: templates/InvenTree/index.html:202 msgid "Stale Stock" -msgstr "" +msgstr "Stock Obsoleto" #: templates/InvenTree/index.html:224 msgid "Build Orders In Progress" -msgstr "" +msgstr "Pedidos en curso" #: templates/InvenTree/index.html:235 msgid "Overdue Build Orders" -msgstr "" +msgstr "Órdenes de construcción atrasadas" #: templates/InvenTree/index.html:255 msgid "Outstanding Purchase Orders" -msgstr "" +msgstr "Órdenes de Compra Pendientes" #: templates/InvenTree/index.html:266 msgid "Overdue Purchase Orders" -msgstr "" +msgstr "Pedidos de Compra Atrasados" #: templates/InvenTree/index.html:286 msgid "Outstanding Sales Orders" -msgstr "" +msgstr "Pedidos de Venta Pendientes" #: templates/InvenTree/index.html:297 msgid "Overdue Sales Orders" -msgstr "" +msgstr "Pedidos de Venta Atrasados" #: templates/InvenTree/search.html:8 msgid "Search Results" -msgstr "" +msgstr "Resultados de Búsqueda" #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" -msgstr "" +msgstr "Ajustes de Código de Barras" #: templates/InvenTree/settings/build.html:8 msgid "Build Order Settings" -msgstr "" +msgstr "Configuración de Pedido de Trabajo" #: templates/InvenTree/settings/category.html:7 msgid "Category Settings" -msgstr "" +msgstr "Ajustes de Categoría" #: templates/InvenTree/settings/currencies.html:8 msgid "Currency Settings" -msgstr "" +msgstr "Configuración de Moneda" #: templates/InvenTree/settings/currencies.html:19 msgid "Base Currency" -msgstr "" +msgstr "Moneda Base" #: templates/InvenTree/settings/currencies.html:24 msgid "Exchange Rates" -msgstr "" +msgstr "Tipos de Cambio" #: templates/InvenTree/settings/currencies.html:38 msgid "Last Update" -msgstr "" +msgstr "Última Actualización" #: templates/InvenTree/settings/currencies.html:44 msgid "Never" -msgstr "" +msgstr "Nunca" #: templates/InvenTree/settings/currencies.html:49 msgid "Update Now" -msgstr "" +msgstr "Actualizar Ahora" #: templates/InvenTree/settings/global.html:9 msgid "Server Settings" -msgstr "" +msgstr "Configuración del Servidor" #: templates/InvenTree/settings/login.html:9 #: templates/InvenTree/settings/sidebar.html:29 msgid "Login Settings" -msgstr "" +msgstr "Configuración de Inicio de Sesión" #: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" -msgstr "" +msgstr "Registrarse" #: templates/InvenTree/settings/mixins/settings.html:5 #: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 msgid "Settings" -msgstr "" +msgstr "Ajustes" #: templates/InvenTree/settings/mixins/urls.html:5 msgid "URLs" -msgstr "" +msgstr "Direcciones URL" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format msgid "The Base-URL for this plugin is %(base)s." -msgstr "" +msgstr "La URL base para este plugin es %(base)s." #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" -msgstr "" +msgstr "Abrir en una pestaña nueva" #: templates/InvenTree/settings/part.html:7 msgid "Part Settings" -msgstr "" +msgstr "Ajustes de Parte" #: templates/InvenTree/settings/part.html:44 msgid "Part Import" -msgstr "" +msgstr "Importar Parte" #: templates/InvenTree/settings/part.html:48 msgid "Import Part" -msgstr "" +msgstr "Importar Parte" #: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" -msgstr "" +msgstr "Plantillas de Parámetros de Partes" #: templates/InvenTree/settings/plugin.html:10 msgid "Plugin Settings" -msgstr "" +msgstr "Ajustes del Plugin" #: templates/InvenTree/settings/plugin.html:16 msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." -msgstr "" +msgstr "Cambiar la configuración de abajo requiere reiniciar inmediatamente InvenTree. No lo cambie mientras esté en uso activo." #: templates/InvenTree/settings/plugin.html:33 msgid "Plugins" -msgstr "" +msgstr "Plugins" #: templates/InvenTree/settings/plugin.html:38 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" -msgstr "" +msgstr "Instalar Plugin" #: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 #: users/models.py:39 msgid "Admin" -msgstr "" +msgstr "Admin" #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" -msgstr "" +msgstr "Autor" #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" -msgstr "" +msgstr "Versión" #: templates/InvenTree/settings/plugin.html:92 msgid "Inactive plugins" -msgstr "" +msgstr "Plugins inactivos" #: templates/InvenTree/settings/plugin.html:115 msgid "Plugin Error Stack" -msgstr "" +msgstr "Pila de Error de Plugin" #: templates/InvenTree/settings/plugin.html:124 msgid "Stage" -msgstr "" +msgstr "Etapa" #: templates/InvenTree/settings/plugin.html:126 msgid "Message" -msgstr "" +msgstr "Mensaje" #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" -msgstr "" +msgstr "Detalles del plugin para %(name)s" #: templates/InvenTree/settings/plugin_settings.html:17 msgid "Plugin information" -msgstr "" +msgstr "Información de Plugin" #: templates/InvenTree/settings/plugin_settings.html:48 msgid "no version information supplied" -msgstr "" +msgstr "no se proporcionó información de versión" #: templates/InvenTree/settings/plugin_settings.html:62 msgid "License" -msgstr "" +msgstr "Licencia" #: templates/InvenTree/settings/plugin_settings.html:71 msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." -msgstr "" +msgstr "La información del código es extraída del último git commit para este plugin. Puede que no refleje los números de versión oficiales o la información, pero sí el código actual en ejecución." #: templates/InvenTree/settings/plugin_settings.html:77 msgid "Package information" -msgstr "" +msgstr "Información del paquete" #: templates/InvenTree/settings/plugin_settings.html:83 msgid "Installation method" -msgstr "" +msgstr "Método de instalación" #: templates/InvenTree/settings/plugin_settings.html:86 msgid "This plugin was installed as a package" -msgstr "" +msgstr "Este plugin fue instalado como un paquete" #: templates/InvenTree/settings/plugin_settings.html:88 msgid "This plugin was found in a local InvenTree path" -msgstr "" +msgstr "Este plugin fue encontrado en una ruta local de InvenTree" #: templates/InvenTree/settings/plugin_settings.html:94 msgid "Installation path" -msgstr "" +msgstr "Ruta de instalación" #: templates/InvenTree/settings/plugin_settings.html:100 msgid "Commit Author" -msgstr "" +msgstr "Autor del Commit" #: templates/InvenTree/settings/plugin_settings.html:104 #: templates/about.html:47 msgid "Commit Date" -msgstr "" +msgstr "Fecha del Commit" #: templates/InvenTree/settings/plugin_settings.html:108 #: templates/about.html:40 msgid "Commit Hash" -msgstr "" +msgstr "Hash de Commit" #: templates/InvenTree/settings/plugin_settings.html:112 msgid "Commit Message" -msgstr "" +msgstr "Mensaje de Commit" #: templates/InvenTree/settings/plugin_settings.html:117 msgid "Sign Status" -msgstr "" +msgstr "Estado de Firma" #: templates/InvenTree/settings/plugin_settings.html:122 msgid "Sign Key" -msgstr "" +msgstr "Firma de clave" #: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" -msgstr "" +msgstr "Ajustes de Orden de Compra" #: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 msgid "Report Settings" -msgstr "" +msgstr "Ajustes del Informe" #: templates/InvenTree/settings/setting.html:33 msgid "No value set" -msgstr "" +msgstr "Ningún valor establecido" #: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" -msgstr "" +msgstr "Editar ajustes" #: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" -msgstr "" +msgstr "Editar Configuración del Plugin" #: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" -msgstr "" +msgstr "Editar Configuración Global" #: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" -msgstr "" +msgstr "Editar Configuración de Usuario" #: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" -msgstr "" +msgstr "No hay plantillas de parámetros de categoría" #: templates/InvenTree/settings/settings.html:230 #: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" -msgstr "" +msgstr "Editar Plantilla" #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" -msgstr "" +msgstr "Eliminar Plantilla" #: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" -msgstr "" +msgstr "No se encontraron plantillas de parámetros de parte" #: templates/InvenTree/settings/settings.html:313 msgid "ID" -msgstr "" +msgstr "Identificación" #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "Configuración del Usuario" #: templates/InvenTree/settings/sidebar.html:9 #: templates/InvenTree/settings/user.html:12 msgid "Account Settings" -msgstr "" +msgstr "Configuración de la Cuenta" #: templates/InvenTree/settings/sidebar.html:11 #: templates/InvenTree/settings/user_display.html:9 msgid "Display Settings" -msgstr "" +msgstr "Ajuste de Visualización" #: templates/InvenTree/settings/sidebar.html:13 msgid "Home Page" -msgstr "" +msgstr "Página de Inicio" #: templates/InvenTree/settings/sidebar.html:15 #: templates/InvenTree/settings/user_search.html:9 msgid "Search Settings" -msgstr "" +msgstr "Ajustes de Búsqueda" #: templates/InvenTree/settings/sidebar.html:17 msgid "Label Printing" -msgstr "" +msgstr "Impresión de etiquetas" #: templates/InvenTree/settings/sidebar.html:19 #: templates/InvenTree/settings/sidebar.html:35 msgid "Reporting" -msgstr "" +msgstr "Informando" #: templates/InvenTree/settings/sidebar.html:24 msgid "Global Settings" -msgstr "" +msgstr "Configuración Global" #: templates/InvenTree/settings/sidebar.html:27 msgid "Server Configuration" -msgstr "" +msgstr "Configuración del Servidor" #: templates/InvenTree/settings/sidebar.html:33 msgid "Currencies" -msgstr "" +msgstr "Monedas" #: templates/InvenTree/settings/sidebar.html:39 msgid "Categories" -msgstr "" +msgstr "Categorías" #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" -msgstr "" +msgstr "Configuración de orden de venta" #: templates/InvenTree/settings/stock.html:7 msgid "Stock Settings" -msgstr "" +msgstr "Configuración de Stock" #: templates/InvenTree/settings/user.html:18 #: templates/account/password_reset_from_key.html:4 #: templates/account/password_reset_from_key.html:7 msgid "Change Password" -msgstr "" +msgstr "Cambiar Contraseña" #: templates/InvenTree/settings/user.html:22 #: templates/js/translated/helpers.js:26 msgid "Edit" -msgstr "" +msgstr "Editar" #: templates/InvenTree/settings/user.html:32 msgid "Username" -msgstr "" +msgstr "Nombre de usuario" #: templates/InvenTree/settings/user.html:36 msgid "First Name" -msgstr "" +msgstr "Nombre" #: templates/InvenTree/settings/user.html:40 msgid "Last Name" -msgstr "" +msgstr "Apellido" #: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "Las siguientes direcciones de correo electrónico están asociadas con tu cuenta:" #: templates/InvenTree/settings/user.html:75 msgid "Verified" -msgstr "" +msgstr "Verificado" #: templates/InvenTree/settings/user.html:77 msgid "Unverified" -msgstr "" +msgstr "Sin verificar" #: templates/InvenTree/settings/user.html:79 msgid "Primary" -msgstr "" +msgstr "Principal" #: templates/InvenTree/settings/user.html:85 msgid "Make Primary" -msgstr "" +msgstr "Hacer Principal" #: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" -msgstr "" +msgstr "Reenviar verificación" #: templates/InvenTree/settings/user.html:87 #: templates/InvenTree/settings/user.html:149 msgid "Remove" -msgstr "" +msgstr "Eliminar" #: templates/InvenTree/settings/user.html:95 #: templates/InvenTree/settings/user.html:201 msgid "Warning:" -msgstr "" +msgstr "Advertencia:" #: templates/InvenTree/settings/user.html:96 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." -msgstr "" +msgstr "Actualmente no tiene ninguna dirección de correo electrónico configurada. Realmente deberías añadir una dirección de correo electrónico para que puedas recibir notificaciones, restablecer tu contraseña, etc." #: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" -msgstr "" +msgstr "Añadir correo electrónico" #: templates/InvenTree/settings/user.html:109 msgid "Add Email" -msgstr "" +msgstr "Agregar Email" #: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" -msgstr "" +msgstr "Cuentas Sociales" #: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" -msgstr "" +msgstr "Puede iniciar sesión en su cuenta utilizando cualquiera de las siguientes cuentas de terceros:" #: templates/InvenTree/settings/user.html:157 msgid "You currently have no social network accounts connected to this account." -msgstr "" +msgstr "Actualmente no tiene cuentas en redes sociales asociadas a esta cuenta." #: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" -msgstr "" +msgstr "Añadir una cuenta de terceros" #: templates/InvenTree/settings/user.html:172 msgid "Multifactor" -msgstr "" +msgstr "Multifactor" #: templates/InvenTree/settings/user.html:177 msgid "You have these factors available:" -msgstr "" +msgstr "Tienes estos factores disponibles:" #: templates/InvenTree/settings/user.html:187 msgid "TOTP" -msgstr "" +msgstr "TOTP" #: templates/InvenTree/settings/user.html:193 msgid "Static" -msgstr "" +msgstr "Estático" #: templates/InvenTree/settings/user.html:202 msgid "You currently do not have any factors set up." -msgstr "" +msgstr "Actualmente no tienes ningún factor configurado." #: templates/InvenTree/settings/user.html:209 msgid "Change factors" -msgstr "" +msgstr "Cambiar factores" #: templates/InvenTree/settings/user.html:210 msgid "Setup multifactor" -msgstr "" +msgstr "Configurar factor múltiple" #: templates/InvenTree/settings/user.html:212 msgid "Remove multifactor" -msgstr "" +msgstr "Remover factor múltiple" #: templates/InvenTree/settings/user.html:220 msgid "Active Sessions" -msgstr "" +msgstr "Sesiones Activas" #: templates/InvenTree/settings/user.html:226 msgid "Log out active sessions (except this one)" -msgstr "" +msgstr "Cerrar sesiones activas (excepto esta)" #: templates/InvenTree/settings/user.html:227 msgid "Log Out Active Sessions" -msgstr "" +msgstr "Cerrar Sesiones Activas" #: templates/InvenTree/settings/user.html:236 msgid "unknown on unknown" -msgstr "" +msgstr "desconocido en desconocido" #: templates/InvenTree/settings/user.html:237 msgid "unknown" -msgstr "" +msgstr "desconocido" #: templates/InvenTree/settings/user.html:241 msgid "IP Address" -msgstr "" +msgstr "Dirección IP" #: templates/InvenTree/settings/user.html:242 msgid "Device" -msgstr "" +msgstr "Dispositivo" #: templates/InvenTree/settings/user.html:243 msgid "Last Activity" -msgstr "" +msgstr "Última Actividad" #: templates/InvenTree/settings/user.html:252 #, python-format msgid "%(time)s ago (this session)" -msgstr "" +msgstr "%(time)s atrás (esta sesión)" #: templates/InvenTree/settings/user.html:254 #, python-format msgid "%(time)s ago" -msgstr "" +msgstr "%(time)s atrás" #: templates/InvenTree/settings/user.html:266 msgid "Do you really want to remove the selected email address?" -msgstr "" +msgstr "¿Realmente desea eliminar la dirección de correo electrónico seleccionada?" #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" -msgstr "" +msgstr "Configuración del Tema" #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" -msgstr "" +msgstr "Seleccionar tema" #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" -msgstr "" +msgstr "Establecer tema" #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" -msgstr "" +msgstr "Configuración de Idioma" #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" -msgstr "" +msgstr "Seleccionar idioma" #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" -msgstr "" +msgstr "%(lang_translated)s%% traducido" #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" -msgstr "" +msgstr "No hay traducciones disponibles" #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" -msgstr "" +msgstr "Definir Idioma" #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" -msgstr "" +msgstr "Algunos idiomas no están completos" #: templates/InvenTree/settings/user_display.html:93 msgid "Show only sufficent" -msgstr "" +msgstr "Mostrar solo el contenido" #: templates/InvenTree/settings/user_display.html:95 msgid "and hidden." -msgstr "" +msgstr "y oculto." #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" -msgstr "" +msgstr "Mostrar también" #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" -msgstr "" +msgstr "¡Ayuda a los esfuerzos de traducción!" #: templates/InvenTree/settings/user_display.html:102 #, python-format msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "" +msgstr "La traducción nativa de la aplicación web de InvenTree es un aporte de la comunidad a través de crowdin. Las contribuciones son bienvenidas y alentadas." #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" -msgstr "" +msgstr "Ajustes de página de inicio" #: templates/InvenTree/settings/user_labels.html:9 msgid "Label Settings" -msgstr "" +msgstr "Ajustes de Etiqueta" #: templates/about.html:10 msgid "InvenTree Version Information" -msgstr "" +msgstr "Información de la versión de InvenTree" #: templates/about.html:11 templates/about.html:105 #: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 @@ -7056,200 +7062,203 @@ msgstr "" #: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 #: templates/modals.html:50 msgid "Close" -msgstr "" +msgstr "Cerrar" #: templates/about.html:20 msgid "InvenTree Version" -msgstr "" +msgstr "Versión de InvenTree" #: templates/about.html:25 msgid "Development Version" -msgstr "" +msgstr "Versión de Desarrollo" #: templates/about.html:28 msgid "Up to Date" -msgstr "" +msgstr "Actualizado" #: templates/about.html:30 msgid "Update Available" -msgstr "" +msgstr "Actualización Disponible" #: templates/about.html:53 msgid "InvenTree Documentation" -msgstr "" +msgstr "Documentación de InvenTree" #: templates/about.html:58 msgid "API Version" -msgstr "" +msgstr "Versión API" #: templates/about.html:63 msgid "Python Version" -msgstr "" +msgstr "Versión de Python" #: templates/about.html:68 msgid "Django Version" -msgstr "" +msgstr "Versión de Django" #: templates/about.html:73 msgid "View Code on GitHub" -msgstr "" +msgstr "Ver código en GitHub" #: templates/about.html:78 msgid "Credits" -msgstr "" +msgstr "Créditos" #: templates/about.html:83 msgid "Mobile App" -msgstr "" +msgstr "Aplicación Móvil" #: templates/about.html:88 msgid "Submit Bug Report" -msgstr "" +msgstr "Enviar Informe de Error" #: templates/about.html:95 templates/clip.html:4 msgid "copy to clipboard" -msgstr "" +msgstr "copiar al portapapeles" #: templates/about.html:95 msgid "copy version information" -msgstr "" +msgstr "copiar información de versión" #: templates/account/email_confirm.html:6 #: templates/account/email_confirm.html:10 msgid "Confirm Email Address" -msgstr "" +msgstr "Confirmar Email" #: templates/account/email_confirm.html:16 #, python-format msgid "Please confirm that %(email)s is an email address for user %(user_display)s." -msgstr "" +msgstr "Confirme que %(email)s es una dirección de correo electrónico para el usuario %(user_display)s." #: templates/account/email_confirm.html:27 #, python-format msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." -msgstr "" +msgstr "Este enlace de confirmación de correo electrónico ha caducado o no es válido. Por favor, envíe un nuevo correo electrónico de solicitud de confirmación." #: templates/account/login.html:6 templates/account/login.html:16 #: templates/account/login.html:39 msgid "Sign In" -msgstr "" +msgstr "Ingresar" #: templates/account/login.html:21 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" -msgstr "" +msgstr "Por favor, inicia sesión con una\n" +"de tus cuentas de terceros existentes o regístrate\n" +" e inicia sesión a continuación:" #: templates/account/login.html:25 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." -msgstr "" +msgstr "Si aún no has creado una cuenta, por favor\n" +"regístrate primero." #: templates/account/login.html:42 msgid "Forgot Password?" -msgstr "" +msgstr "¿Ha olvidado la contraseña?" #: templates/account/login.html:47 msgid "InvenTree demo instance" -msgstr "" +msgstr "Instancia demo de InvenTree" #: templates/account/login.html:47 msgid "Click here for login details" -msgstr "" +msgstr "Haga clic aquí para ver los detalles de acceso" #: templates/account/login.html:55 msgid "or use SSO" -msgstr "" +msgstr "o usar SSO" #: templates/account/logout.html:5 templates/account/logout.html:8 #: templates/account/logout.html:20 msgid "Sign Out" -msgstr "" +msgstr "Cerrar Sesión" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "" +msgstr "¿Está seguro de que desea salir?" #: templates/account/logout.html:19 msgid "Back to Site" -msgstr "" +msgstr "Volver al Sitio" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 msgid "Password Reset" -msgstr "" +msgstr "Restablecer Contraseña" #: templates/account/password_reset.html:18 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." -msgstr "" +msgstr "¿Olvidó su contraseña? Introduzca su dirección de correo electrónico a continuación y le enviaremos un correo electrónico que le permita restablecerla." #: templates/account/password_reset.html:23 msgid "Reset My Password" -msgstr "" +msgstr "Reestablecer mi Contraseña" #: templates/account/password_reset.html:27 templates/account/signup.html:36 msgid "This function is currently disabled. Please contact an administrator." -msgstr "" +msgstr "Esta función está actualmente deshabilitada. Por favor, póngase en contacto con un administrador." #: templates/account/password_reset_from_key.html:7 msgid "Bad Token" -msgstr "" +msgstr "Token Incorrecto" #: templates/account/password_reset_from_key.html:11 #, python-format msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "" +msgstr "El enlace de restablecimiento de contraseña no era válido, posiblemente porque ya ha sido utilizado. Por favor, solicite un nuevo restablecimiento de contraseña." #: templates/account/password_reset_from_key.html:18 msgid "Change password" -msgstr "" +msgstr "Cambiar contraseña" #: templates/account/password_reset_from_key.html:22 msgid "Your password is now changed." -msgstr "" +msgstr "Se ha cambiado la contraseña." #: templates/account/signup.html:11 templates/account/signup.html:22 msgid "Sign Up" -msgstr "" +msgstr "Registrarse" #: templates/account/signup.html:13 #, python-format msgid "Already have an account? Then please sign in." -msgstr "" +msgstr "¿Ya tienes una cuenta? Entonces inicia sesión." #: templates/account/signup.html:27 msgid "Or use a SSO-provider for signup" -msgstr "" +msgstr "O utilice un proveedor de SSO para registrarse" #: templates/admin_button.html:2 msgid "View in administration panel" -msgstr "" +msgstr "Ver en el panel de administración" #: templates/allauth_2fa/authenticate.html:5 msgid "Two-Factor Authentication" -msgstr "" +msgstr "Autenticación de dos factores" #: templates/allauth_2fa/authenticate.html:12 msgid "Authenticate" -msgstr "" +msgstr "Autenticar" #: templates/allauth_2fa/backup_tokens.html:6 msgid "Two-Factor Authentication Backup Tokens" -msgstr "" +msgstr "Tokens de autenticación de doble factor" #: templates/allauth_2fa/backup_tokens.html:17 msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." -msgstr "" +msgstr "Se han generado tokens de copia de seguridad, pero no se revelan aquí por razones de seguridad. Pulse el botón de abajo para generar nuevos." #: templates/allauth_2fa/backup_tokens.html:20 msgid "No tokens. Press the button below to generate some." -msgstr "" +msgstr "No hay tokens. Pulse el botón de abajo para generar algunos." #: templates/allauth_2fa/backup_tokens.html:27 msgid "Generate backup tokens" -msgstr "" +msgstr "Crear token de copias de seguridad" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 @@ -7258,81 +7267,81 @@ msgstr "" #: templates/allauth_2fa/remove.html:6 msgid "Disable Two-Factor Authentication" -msgstr "" +msgstr "Deshabilitar autenticación de dos factores" #: templates/allauth_2fa/remove.html:9 msgid "Are you sure?" -msgstr "" +msgstr "¿Está seguro?" #: templates/allauth_2fa/remove.html:14 msgid "Disable Two-Factor" -msgstr "" +msgstr "Deshabilitar dos factores" #: templates/allauth_2fa/setup.html:6 msgid "Setup Two-Factor Authentication" -msgstr "" +msgstr "Configurar Autenticación de Dos Factores" #: templates/allauth_2fa/setup.html:10 msgid "Step 1" -msgstr "" +msgstr "Paso 1" #: templates/allauth_2fa/setup.html:14 msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." -msgstr "" +msgstr "Escanea el código QR de abajo con un generador de tokens de tu elección (por ejemplo Google Authenticator)." #: templates/allauth_2fa/setup.html:23 msgid "Step 2" -msgstr "" +msgstr "Paso 2" #: templates/allauth_2fa/setup.html:27 msgid "Input a token generated by the app:" -msgstr "" +msgstr "Ingrese un token generado por la aplicación:" #: templates/allauth_2fa/setup.html:35 msgid "Verify" -msgstr "" +msgstr "Verificar" #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" -msgstr "" +msgstr "Agregar Enlace" #: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 msgid "Add Attachment" -msgstr "" +msgstr "Añadir archivo adjunto" #: templates/base.html:97 msgid "Server Restart Required" -msgstr "" +msgstr "Reinicio del Servidor Requerido" #: templates/base.html:100 msgid "A configuration option has been changed which requires a server restart" -msgstr "" +msgstr "Se ha cambiado una opción de configuración que requiere reiniciar el servidor" #: templates/base.html:100 msgid "Contact your system administrator for further information" -msgstr "" +msgstr "Póngase en contacto con su administrador para más información" #: templates/email/build_order_required_stock.html:7 msgid "Stock is required for the following build order" -msgstr "" +msgstr "Se requiere stock para el siguiente orden de trabajo" #: templates/email/build_order_required_stock.html:8 #, python-format msgid "Build order %(build)s - building %(quantity)s x %(part)s" -msgstr "" +msgstr "Orden de trabajo %(build)s - creando %(quantity)s x %(part)s" #: templates/email/build_order_required_stock.html:10 msgid "Click on the following link to view this build order" -msgstr "" +msgstr "Haga clic en el siguiente enlace para ver esta orden de trabajo" #: templates/email/build_order_required_stock.html:14 msgid "The following parts are low on required stock" -msgstr "" +msgstr "Las siguientes partes están bajas en stock requerido" #: templates/email/build_order_required_stock.html:18 #: templates/js/translated/bom.js:1335 msgid "Required Quantity" -msgstr "" +msgstr "Cantidad requerida" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 @@ -7340,770 +7349,770 @@ msgstr "" #: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" -msgstr "" +msgstr "Disponible" #: templates/email/build_order_required_stock.html:38 #: templates/email/low_stock_notification.html:31 msgid "You are receiving this email because you are subscribed to notifications for this part " -msgstr "" +msgstr "Estás recibiendo este correo electrónico porque estás suscrito a las notificaciones de esta parte " #: templates/email/email.html:35 msgid "InvenTree version" -msgstr "" +msgstr "Versión de InvenTree" #: templates/email/low_stock_notification.html:7 #, python-format msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" +msgstr " El stock disponible para %(part)s ha caído por debajo del nivel mínimo configurado" #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" -msgstr "" +msgstr "Haga clic en el siguiente enlace para ver esta pieza" #: templates/email/low_stock_notification.html:19 msgid "Minimum Quantity" -msgstr "" +msgstr "Cantidad Mínima" #: templates/image_download.html:8 msgid "Specify URL for downloading image" -msgstr "" +msgstr "Especificar URL para descargar la imagen" #: templates/image_download.html:11 msgid "Must be a valid image URL" -msgstr "" +msgstr "Debe ser una URL de imagen válida" #: templates/image_download.html:12 msgid "Remote server must be accessible" -msgstr "" +msgstr "Servidor remoto debe ser accesible" #: templates/image_download.html:13 msgid "Remote image must not exceed maximum allowable file size" -msgstr "" +msgstr "La imagen remota no debe exceder el tamaño máximo permitido de archivo" #: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 msgid "No Response" -msgstr "" +msgstr "Sin Respuesta" #: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" -msgstr "" +msgstr "No hay respuesta del servidor InvenTree" #: templates/js/translated/api.js:192 msgid "Error 400: Bad request" -msgstr "" +msgstr "Error 400: Solicitud incorrecta" #: templates/js/translated/api.js:193 msgid "API request returned error code 400" -msgstr "" +msgstr "La solicitud API devolvió el código de error 400" #: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" -msgstr "" +msgstr "Error 401: No autenticado" #: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" -msgstr "" +msgstr "Credenciales de autenticación no suministradas" #: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" -msgstr "" +msgstr "Error 403: Permiso Denegado" #: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" -msgstr "" +msgstr "No tiene los permisos necesarios para acceder a esta función" #: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" -msgstr "" +msgstr "Error 404: Recurso No Encontrado" #: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" -msgstr "" +msgstr "El recurso solicitado no se pudo encontrar en el servidor" #: templates/js/translated/api.js:212 msgid "Error 405: Method Not Allowed" -msgstr "" +msgstr "Error 405: Método no Permitido" #: templates/js/translated/api.js:213 msgid "HTTP method not allowed at URL" -msgstr "" +msgstr "Método HTTP no permitido en URL" #: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" -msgstr "" +msgstr "Error 408: Tiempo de espera agotado" #: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" -msgstr "" +msgstr "Tiempo de espera de conexión agotado al solicitar datos del servidor" #: templates/js/translated/api.js:221 msgid "Unhandled Error Code" -msgstr "" +msgstr "Código de error no controlado" #: templates/js/translated/api.js:222 msgid "Error code" -msgstr "" +msgstr "Código de error" #: templates/js/translated/attachment.js:78 msgid "No attachments found" -msgstr "" +msgstr "No se encontraron archivos adjuntos" #: templates/js/translated/attachment.js:100 msgid "Edit Attachment" -msgstr "" +msgstr "Editar archivos adjuntos" #: templates/js/translated/attachment.js:110 msgid "Confirm Delete" -msgstr "" +msgstr "Confirmar eliminación" #: templates/js/translated/attachment.js:111 msgid "Delete Attachment" -msgstr "" +msgstr "Eliminar archivo adjunto" #: templates/js/translated/attachment.js:167 msgid "Upload Date" -msgstr "" +msgstr "Fecha de subida" #: templates/js/translated/attachment.js:180 msgid "Edit attachment" -msgstr "" +msgstr "Editar adjunto" #: templates/js/translated/attachment.js:187 msgid "Delete attachment" -msgstr "" +msgstr "Eliminar adjunto" #: templates/js/translated/barcode.js:29 msgid "Scan barcode data here using wedge scanner" -msgstr "" +msgstr "Escanea los datos de código de barras aquí usando un escáner de cuña" #: templates/js/translated/barcode.js:31 msgid "Enter barcode data" -msgstr "" +msgstr "Introduzca datos de código de barras" #: templates/js/translated/barcode.js:35 msgid "Barcode" -msgstr "" +msgstr "Código de barras" #: templates/js/translated/barcode.js:53 msgid "Enter optional notes for stock transfer" -msgstr "" +msgstr "Introduzca notas opcionales para la transferencia de stock" #: templates/js/translated/barcode.js:54 msgid "Enter notes" -msgstr "" +msgstr "Escribir notas" #: templates/js/translated/barcode.js:92 msgid "Server error" -msgstr "" +msgstr "Error del servidor" #: templates/js/translated/barcode.js:113 msgid "Unknown response from server" -msgstr "" +msgstr "Respuesta desconocida del servidor" #: templates/js/translated/barcode.js:140 #: templates/js/translated/modals.js:1046 msgid "Invalid server response" -msgstr "" +msgstr "Respuesta del servidor inválida" #: templates/js/translated/barcode.js:233 msgid "Scan barcode data below" -msgstr "" +msgstr "Escanear datos de código de barras abajo" #: templates/js/translated/barcode.js:280 templates/navbar.html:94 msgid "Scan Barcode" -msgstr "" +msgstr "Escanear código de barras" #: templates/js/translated/barcode.js:291 msgid "No URL in response" -msgstr "" +msgstr "No hay URL en respuesta" #: templates/js/translated/barcode.js:309 msgid "Link Barcode to Stock Item" -msgstr "" +msgstr "Enlazar código de barras al artículo de stock" #: templates/js/translated/barcode.js:332 msgid "This will remove the association between this stock item and the barcode" -msgstr "" +msgstr "Esto eliminará la asociación entre este artículo de stock y el código de barras" #: templates/js/translated/barcode.js:338 msgid "Unlink" -msgstr "" +msgstr "Desvincular" #: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" -msgstr "" +msgstr "Eliminar elemento de stock" #: templates/js/translated/barcode.js:439 msgid "Check Stock Items into Location" -msgstr "" +msgstr "Comprobar elementos de stock en ubicación" #: templates/js/translated/barcode.js:443 #: templates/js/translated/barcode.js:573 msgid "Check In" -msgstr "" +msgstr "Registrar" #: templates/js/translated/barcode.js:485 #: templates/js/translated/barcode.js:612 msgid "Error transferring stock" -msgstr "" +msgstr "Error al transferir stock" #: templates/js/translated/barcode.js:507 msgid "Stock Item already scanned" -msgstr "" +msgstr "Artículo de stock ya escaneado" #: templates/js/translated/barcode.js:511 msgid "Stock Item already in this location" -msgstr "" +msgstr "Artículo de stock ya está en esta ubicación" #: templates/js/translated/barcode.js:518 msgid "Added stock item" -msgstr "" +msgstr "Artículo de stock añadido" #: templates/js/translated/barcode.js:525 msgid "Barcode does not match Stock Item" -msgstr "" +msgstr "El código de barras no coincide con el artículo de stock" #: templates/js/translated/barcode.js:568 msgid "Check Into Location" -msgstr "" +msgstr "Comprobar en la ubicación" #: templates/js/translated/barcode.js:633 msgid "Barcode does not match a valid location" -msgstr "" +msgstr "El código de barras no coincide con una ubicación válida" #: templates/js/translated/bom.js:75 msgid "Display row data" -msgstr "" +msgstr "Mostrar datos de fila" #: templates/js/translated/bom.js:131 msgid "Row Data" -msgstr "" +msgstr "Datos de Fila" #: templates/js/translated/bom.js:249 msgid "Download BOM Template" -msgstr "" +msgstr "Descargar plantilla BOM" #: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 #: templates/js/translated/order.js:369 templates/js/translated/stock.js:519 msgid "Format" -msgstr "" +msgstr "Formato" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 #: templates/js/translated/order.js:370 templates/js/translated/stock.js:520 msgid "Select file format" -msgstr "" +msgstr "Seleccionar formato de archivo" #: templates/js/translated/bom.js:294 msgid "Cascading" -msgstr "" +msgstr "Cascada" #: templates/js/translated/bom.js:295 msgid "Download cascading / multi-level BOM" -msgstr "" +msgstr "Descargar BOM en cascada / multi-nivel" #: templates/js/translated/bom.js:300 msgid "Levels" -msgstr "" +msgstr "Niveles" #: templates/js/translated/bom.js:301 msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" +msgstr "Seleccione el número máximo de niveles BOM a exportar (0 = todos los niveles)" #: templates/js/translated/bom.js:307 msgid "Include Parameter Data" -msgstr "" +msgstr "Incluye Parámetros de Datos" #: templates/js/translated/bom.js:308 msgid "Include part parameter data in exported BOM" -msgstr "" +msgstr "Incluye los datos del parámetro de la pieza en BOM exportado" #: templates/js/translated/bom.js:313 msgid "Include Stock Data" -msgstr "" +msgstr "Incluye Datos de Stock" #: templates/js/translated/bom.js:314 msgid "Include part stock data in exported BOM" -msgstr "" +msgstr "Incluye datos de stock de piezas en BOM exportado" #: templates/js/translated/bom.js:319 msgid "Include Manufacturer Data" -msgstr "" +msgstr "Incluir Datos del fabricante" #: templates/js/translated/bom.js:320 msgid "Include part manufacturer data in exported BOM" -msgstr "" +msgstr "Incluye datos del fabricante de piezas en BOM exportado" #: templates/js/translated/bom.js:325 msgid "Include Supplier Data" -msgstr "" +msgstr "Incluir Datos del Proveedor" #: templates/js/translated/bom.js:326 msgid "Include part supplier data in exported BOM" -msgstr "" +msgstr "Incluye datos del proveedor de piezas en BOM exportado" #: templates/js/translated/bom.js:509 msgid "Remove substitute part" -msgstr "" +msgstr "Eliminar parte sustituta" #: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" -msgstr "" +msgstr "Seleccione y añada una nueva parte sustituta usando la siguiente entrada" #: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" -msgstr "" +msgstr "¿Está seguro que desea eliminar este enlace de la parte sustituta?" #: templates/js/translated/bom.js:582 msgid "Remove Substitute Part" -msgstr "" +msgstr "Eliminar parte sustituta" #: templates/js/translated/bom.js:621 msgid "Add Substitute" -msgstr "" +msgstr "Añadir sustituto" #: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" -msgstr "" +msgstr "Editar sustitutos de elementos BOM" #: templates/js/translated/bom.js:741 msgid "Substitutes Available" -msgstr "" +msgstr "Sustitutos Disponibles" #: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393 msgid "Variant stock allowed" -msgstr "" +msgstr "Stock de variante permitido" #: templates/js/translated/bom.js:750 msgid "Open subassembly" -msgstr "" +msgstr "Abrir sub-ensamblaje" #: templates/js/translated/bom.js:822 msgid "Substitutes" -msgstr "" +msgstr "Sustitutos" #: templates/js/translated/bom.js:837 msgid "Purchase Price Range" -msgstr "" +msgstr "Rango de Precio de Compra" #: templates/js/translated/bom.js:844 msgid "Purchase Price Average" -msgstr "" +msgstr "Precio Promedio de Compra" #: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982 msgid "View BOM" -msgstr "" +msgstr "Ver BOM" #: templates/js/translated/bom.js:953 msgid "Validate BOM Item" -msgstr "" +msgstr "Validar Artículo para el BOM" #: templates/js/translated/bom.js:955 msgid "This line has been validated" -msgstr "" +msgstr "Esta línea ha sido validada" #: templates/js/translated/bom.js:957 msgid "Edit substitute parts" -msgstr "" +msgstr "Editar partes sustitutas" #: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" -msgstr "" +msgstr "Editar Artículo de BOM" #: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121 msgid "Delete BOM Item" -msgstr "" +msgstr "Eliminar Artículo de BOM" #: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137 msgid "No BOM items found" -msgstr "" +msgstr "No se encontraron elementos BOM" #: templates/js/translated/bom.js:1116 msgid "Are you sure you want to delete this BOM item?" -msgstr "" +msgstr "¿Está seguro que desea eliminar este elemento BOM?" #: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377 msgid "Required Part" -msgstr "" +msgstr "Parte requerida" #: templates/js/translated/bom.js:1340 msgid "Inherited from parent BOM" -msgstr "Heredado de BOM principal" +msgstr "Heredado de BOM superior" #: templates/js/translated/build.js:85 msgid "Edit Build Order" -msgstr "" +msgstr "Editar Orden de Trabajo" #: templates/js/translated/build.js:119 msgid "Create Build Order" -msgstr "" +msgstr "Crear Orden de Trabajo" #: templates/js/translated/build.js:140 msgid "Build order is ready to be completed" -msgstr "" +msgstr "El pedido de construcción está listo para ser completado" #: templates/js/translated/build.js:145 msgid "Build Order is incomplete" -msgstr "" +msgstr "Orden de construcción incompleta" #: templates/js/translated/build.js:173 msgid "Complete Build Order" -msgstr "" +msgstr "Completar Orden de Construcción" #: templates/js/translated/build.js:214 templates/js/translated/stock.js:93 #: templates/js/translated/stock.js:182 msgid "Next available serial number" -msgstr "" +msgstr "Siguiente número de serie disponible" #: templates/js/translated/build.js:216 templates/js/translated/stock.js:95 #: templates/js/translated/stock.js:184 msgid "Latest serial number" -msgstr "" +msgstr "Último número de serie" #: templates/js/translated/build.js:225 msgid "The Bill of Materials contains trackable parts" -msgstr "" +msgstr "La ley de materiales contiene partes rastreables" #: templates/js/translated/build.js:226 msgid "Build outputs must be generated individually" -msgstr "" +msgstr "Las salidas de construcción deben ser generadas individualmente" #: templates/js/translated/build.js:234 msgid "Trackable parts can have serial numbers specified" -msgstr "" +msgstr "Las partes rastreables pueden tener números de serie especificados" #: templates/js/translated/build.js:235 msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" +msgstr "Introduzca números de serie para generar múltiples salidas de construcción única" #: templates/js/translated/build.js:242 msgid "Create Build Output" -msgstr "" +msgstr "Crear Salida de Trabajo" #: templates/js/translated/build.js:273 msgid "Allocate stock items to this build output" -msgstr "" +msgstr "Asignar elementos de stock a esta salida de trabajo" #: templates/js/translated/build.js:284 msgid "Unallocate stock from build output" -msgstr "" +msgstr "Desasignar stock de la salida de trabajo" #: templates/js/translated/build.js:293 msgid "Complete build output" -msgstr "" +msgstr "Completar salida de trabajo" #: templates/js/translated/build.js:301 msgid "Delete build output" -msgstr "" +msgstr "Eliminar Salida de Trabajo" #: templates/js/translated/build.js:324 msgid "Are you sure you wish to unallocate stock items from this build?" -msgstr "" +msgstr "¿Está seguro que desea desasignar los artículos de stock de este trabajo?" #: templates/js/translated/build.js:342 msgid "Unallocate Stock Items" -msgstr "" +msgstr "Desasignar artículos de stock" #: templates/js/translated/build.js:360 templates/js/translated/build.js:508 msgid "Select Build Outputs" -msgstr "" +msgstr "Seleccionar Salida de Trabajo" #: templates/js/translated/build.js:361 templates/js/translated/build.js:509 msgid "At least one build output must be selected" -msgstr "" +msgstr "Se debe seleccionar al menos una salida de trabajo" #: templates/js/translated/build.js:415 templates/js/translated/build.js:563 msgid "Output" -msgstr "" +msgstr "Salida" #: templates/js/translated/build.js:431 msgid "Complete Build Outputs" -msgstr "" +msgstr "Completar salidas de trabajo" #: templates/js/translated/build.js:576 msgid "Delete Build Outputs" -msgstr "" +msgstr "Eliminar Salidas" #: templates/js/translated/build.js:665 msgid "No build order allocations found" -msgstr "" +msgstr "No se encontraron asignaciones de órdenes de trabajo" #: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" -msgstr "" +msgstr "Ubicación no especificada" #: templates/js/translated/build.js:885 msgid "No active build outputs found" -msgstr "" +msgstr "No se encontraron salidas de trabajo activas" #: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" -msgstr "" +msgstr "Editar asignación de stock" #: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" -msgstr "" +msgstr "Eliminar asignación de stock" #: templates/js/translated/build.js:1354 msgid "Edit Allocation" -msgstr "" +msgstr "Editar Asignación" #: templates/js/translated/build.js:1364 msgid "Remove Allocation" -msgstr "" +msgstr "Quitar asignación" #: templates/js/translated/build.js:1389 msgid "Substitute parts available" -msgstr "" +msgstr "Piezas sustitutas disponibles" #: templates/js/translated/build.js:1406 msgid "Quantity Per" -msgstr "" +msgstr "Cantidad por" #: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656 #: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227 msgid "Allocated" -msgstr "" +msgstr "Asignadas" #: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307 msgid "Build stock" -msgstr "" +msgstr "Stock de Trabajo" #: templates/js/translated/build.js:1476 templates/stock_table.html:53 msgid "Order stock" -msgstr "" +msgstr "Pedido de stock" #: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300 msgid "Allocate stock" -msgstr "" +msgstr "Asignar stock" #: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" -msgstr "" +msgstr "Especificar la cantidad de asignación de stock" #: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" -msgstr "" +msgstr "Seleccionar partes" #: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" -msgstr "" +msgstr "Debe seleccionar al menos una parte para asignar" #: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" -msgstr "" +msgstr "Seleccionar ubicación de origen (dejar en blanco para tomar de todas las ubicaciones)" #: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" -msgstr "" +msgstr "Confirmar asignación de stock" #: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" -msgstr "" +msgstr "Asignar Artículos de Stock a Orden de Trabajo" #: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" -msgstr "" +msgstr "No hay ubicaciones de stock coincidentes" #: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" -msgstr "" +msgstr "No hay artículos de stock coincidentes" #: templates/js/translated/build.js:1875 msgid "No builds matching query" -msgstr "" +msgstr "No hay trabajos que coincidan con la consulta" #: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213 #: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644 #: templates/js/translated/stock.js:2603 msgid "Select" -msgstr "" +msgstr "Seleccionar" #: templates/js/translated/build.js:1912 msgid "Build order is overdue" -msgstr "" +msgstr "Orden de trabajo atrasada" #: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" -msgstr "" +msgstr "No hay información de usuario" #: templates/js/translated/build.js:1985 msgid "No information" -msgstr "" +msgstr "Sin información" #: templates/js/translated/build.js:2036 msgid "No parts allocated for" -msgstr "" +msgstr "No se asignaron partes para" #: templates/js/translated/company.js:65 msgid "Add Manufacturer" -msgstr "" +msgstr "Agregar Fabricante" #: templates/js/translated/company.js:78 templates/js/translated/company.js:177 msgid "Add Manufacturer Part" -msgstr "" +msgstr "Añadir Parte del fabricante" #: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "Editar Parte del Fabricante" #: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" -msgstr "" +msgstr "Eliminar Parte del Fabricante" #: templates/js/translated/company.js:165 templates/js/translated/order.js:248 msgid "Add Supplier" -msgstr "" +msgstr "Añadir Proveedor" #: templates/js/translated/company.js:193 msgid "Add Supplier Part" -msgstr "" +msgstr "Añadir Parte de Proveedor" #: templates/js/translated/company.js:208 msgid "Edit Supplier Part" -msgstr "" +msgstr "Editar Parte del Proveedor" #: templates/js/translated/company.js:218 msgid "Delete Supplier Part" -msgstr "" +msgstr "Eliminar Parte de Proveedor" #: templates/js/translated/company.js:286 msgid "Add new Company" -msgstr "" +msgstr "Añadir nueva Empresa" #: templates/js/translated/company.js:363 msgid "Parts Supplied" -msgstr "" +msgstr "Partes Suministradas" #: templates/js/translated/company.js:372 msgid "Parts Manufactured" -msgstr "" +msgstr "Partes Fabricadas" #: templates/js/translated/company.js:387 msgid "No company information found" -msgstr "" +msgstr "No se encontró información de la empresa" #: templates/js/translated/company.js:406 msgid "The following manufacturer parts will be deleted" -msgstr "" +msgstr "Se eliminarán las siguientes partes del fabricante" #: templates/js/translated/company.js:423 msgid "Delete Manufacturer Parts" -msgstr "" +msgstr "Eliminar Partes del Fabricante" #: templates/js/translated/company.js:480 msgid "No manufacturer parts found" -msgstr "" +msgstr "No se encontraron partes del fabricante" #: templates/js/translated/company.js:500 #: templates/js/translated/company.js:757 templates/js/translated/part.js:517 #: templates/js/translated/part.js:602 msgid "Template part" -msgstr "" +msgstr "Plantilla de parte" #: templates/js/translated/company.js:504 #: templates/js/translated/company.js:761 templates/js/translated/part.js:521 #: templates/js/translated/part.js:606 msgid "Assembled part" -msgstr "" +msgstr "Parte ensamblada" #: templates/js/translated/company.js:631 templates/js/translated/part.js:696 msgid "No parameters found" -msgstr "" +msgstr "No se encontraron parámetros" #: templates/js/translated/company.js:668 templates/js/translated/part.js:738 msgid "Edit parameter" -msgstr "" +msgstr "Editar parámetro" #: templates/js/translated/company.js:669 templates/js/translated/part.js:739 msgid "Delete parameter" -msgstr "" +msgstr "Eliminar parámetro" #: templates/js/translated/company.js:688 templates/js/translated/part.js:756 msgid "Edit Parameter" -msgstr "" +msgstr "Editar parámetro" #: templates/js/translated/company.js:699 templates/js/translated/part.js:768 msgid "Delete Parameter" -msgstr "" +msgstr "Eliminar parámetro" #: templates/js/translated/company.js:737 msgid "No supplier parts found" -msgstr "" +msgstr "No se encontraron piezas de proveedor" #: templates/js/translated/filters.js:178 #: templates/js/translated/filters.js:429 msgid "true" -msgstr "" +msgstr "verdadero" #: templates/js/translated/filters.js:182 #: templates/js/translated/filters.js:430 msgid "false" -msgstr "" +msgstr "falso" #: templates/js/translated/filters.js:204 msgid "Select filter" -msgstr "" +msgstr "Seleccionar filtro" #: templates/js/translated/filters.js:286 msgid "Reload data" -msgstr "" +msgstr "Recargar datos" #: templates/js/translated/filters.js:290 msgid "Add new filter" -msgstr "" +msgstr "Añadir un nuevo filtro" #: templates/js/translated/filters.js:293 msgid "Clear all filters" -msgstr "" +msgstr "Limpiar todos los filtros" #: templates/js/translated/filters.js:338 msgid "Create filter" -msgstr "" +msgstr "Crear filtro" #: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 #: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" -msgstr "" +msgstr "Acción Prohibida" #: templates/js/translated/forms.js:353 msgid "Create operation not allowed" -msgstr "" +msgstr "Operación de creación no permitida" #: templates/js/translated/forms.js:368 msgid "Update operation not allowed" -msgstr "" +msgstr "Operación de actualización no permitida" #: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" -msgstr "" +msgstr "Operación de eliminación no permitida" #: templates/js/translated/forms.js:396 msgid "View operation not allowed" -msgstr "" +msgstr "Operación de visualización no permitida" #: templates/js/translated/forms.js:681 msgid "Enter a valid number" -msgstr "" +msgstr "Introduzca un número válido" #: templates/js/translated/forms.js:1129 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" -msgstr "" +msgstr "Existen errores en el formulario" #: templates/js/translated/forms.js:1558 msgid "No results found" -msgstr "" +msgstr "No hay resultados" #: templates/js/translated/forms.js:1768 msgid "Searching" -msgstr "" +msgstr "Buscando" #: templates/js/translated/forms.js:2013 msgid "Clear input" -msgstr "" +msgstr "Limpiar entrada" #: templates/js/translated/forms.js:2479 msgid "File Column" @@ -8119,574 +8128,574 @@ msgstr "" #: templates/js/translated/helpers.js:19 msgid "YES" -msgstr "" +msgstr "SI" #: templates/js/translated/helpers.js:21 msgid "NO" -msgstr "" +msgstr "NO" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 #: templates/js/translated/stock.js:1051 msgid "Select Stock Items" -msgstr "" +msgstr "Seleccionar elementos de stock" #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" -msgstr "" +msgstr "Elemento(s) de stock deben ser seleccionados antes de imprimir etiquetas" #: templates/js/translated/label.js:48 templates/js/translated/label.js:98 #: templates/js/translated/label.js:153 msgid "No Labels Found" -msgstr "" +msgstr "No se encontraron etiquetas" #: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" -msgstr "" +msgstr "No se han encontrado etiquetas que coincidan con los artículos de stock seleccionado(s)" #: templates/js/translated/label.js:80 msgid "Select Stock Locations" -msgstr "" +msgstr "Seleccionar ubicaciones de stock" #: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" -msgstr "" +msgstr "Las ubicación(es) del stock deben ser seleccionadas antes de imprimir etiquetas" #: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" -msgstr "" +msgstr "No se encontraron etiquetas que coincidan con las ubicaciones de stock seleccionadas" #: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" -msgstr "" +msgstr "Pieza(s) deben ser seleccionadas antes de imprimir etiquetas" #: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" -msgstr "" +msgstr "No se encontraron etiquetas que coincidan con la(s) parte(s) seleccionada(s)" #: templates/js/translated/label.js:228 msgid "stock items selected" -msgstr "" +msgstr "artículos de stock seleccionados" #: templates/js/translated/label.js:236 msgid "Select Label" -msgstr "" +msgstr "Seleccionar Etiqueta" #: templates/js/translated/label.js:251 msgid "Select Label Template" -msgstr "" +msgstr "Seleccione Plantilla de Etiqueta" #: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 #: templates/js/translated/modals.js:610 msgid "Cancel" -msgstr "" +msgstr "Cancelar" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 #: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" -msgstr "" +msgstr "Enviar" #: templates/js/translated/modals.js:118 msgid "Form Title" -msgstr "" +msgstr "Título del Formulario" #: templates/js/translated/modals.js:392 msgid "Waiting for server..." -msgstr "" +msgstr "Esperando al servidor..." #: templates/js/translated/modals.js:551 msgid "Show Error Information" -msgstr "" +msgstr "Mostrar Información de Error" #: templates/js/translated/modals.js:609 msgid "Accept" -msgstr "" +msgstr "Aceptar" #: templates/js/translated/modals.js:666 msgid "Loading Data" -msgstr "" +msgstr "Cargando Datos" #: templates/js/translated/modals.js:937 msgid "Invalid response from server" -msgstr "" +msgstr "Respuesta no válida del servidor" #: templates/js/translated/modals.js:937 msgid "Form data missing from server response" -msgstr "" +msgstr "Datos del formulario faltantes de la respuesta del servidor" #: templates/js/translated/modals.js:949 msgid "Error posting form data" -msgstr "" +msgstr "Error al publicar datos del formulario" #: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" -msgstr "" +msgstr "Respuesta JSON faltan datos del formulario" #: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" -msgstr "" +msgstr "Error 400: Solicitud Incorrecta" #: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" -msgstr "" +msgstr "El servidor devolvió el código de error 400" #: templates/js/translated/modals.js:1085 msgid "Error requesting form data" -msgstr "" +msgstr "Error al solicitar datos del formulario" #: templates/js/translated/model_renderers.js:40 msgid "Company ID" -msgstr "" +msgstr "ID de Empresa" #: templates/js/translated/model_renderers.js:77 msgid "Stock ID" -msgstr "" +msgstr "ID de Stock" #: templates/js/translated/model_renderers.js:130 msgid "Location ID" -msgstr "" +msgstr "ID de Ubicación" #: templates/js/translated/model_renderers.js:147 msgid "Build ID" -msgstr "" +msgstr "ID de construcción" #: templates/js/translated/model_renderers.js:249 #: templates/js/translated/model_renderers.js:270 msgid "Order ID" -msgstr "" +msgstr "ID del Pedido" #: templates/js/translated/model_renderers.js:287 msgid "Shipment ID" -msgstr "" +msgstr "ID de envío" #: templates/js/translated/model_renderers.js:307 msgid "Category ID" -msgstr "" +msgstr "ID de Categoría" #: templates/js/translated/model_renderers.js:344 msgid "Manufacturer Part ID" -msgstr "" +msgstr "ID de Parte del Fabricante" #: templates/js/translated/model_renderers.js:373 msgid "Supplier Part ID" -msgstr "" +msgstr "ID Parte del Proveedor" #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" -msgstr "" +msgstr "No se ha asignado ningún artículo de stock a este envío" #: templates/js/translated/order.js:80 msgid "The following stock items will be shipped" -msgstr "" +msgstr "Los siguientes artículos de stock serán enviados" #: templates/js/translated/order.js:120 msgid "Complete Shipment" -msgstr "" +msgstr "Completar Envío" #: templates/js/translated/order.js:126 msgid "Confirm Shipment" -msgstr "" +msgstr "Confirmar Envío" #: templates/js/translated/order.js:181 msgid "Create New Shipment" -msgstr "" +msgstr "Crear Nuevo Envío" #: templates/js/translated/order.js:206 msgid "Add Customer" -msgstr "" +msgstr "Añadir Cliente" #: templates/js/translated/order.js:231 msgid "Create Sales Order" -msgstr "" +msgstr "Crear Orden de Venta" #: templates/js/translated/order.js:366 msgid "Export Order" -msgstr "" +msgstr "Exportar Orden" #: templates/js/translated/order.js:460 msgid "Select Line Items" -msgstr "" +msgstr "Seleccionar Artículos de Línea" #: templates/js/translated/order.js:461 msgid "At least one line item must be selected" -msgstr "" +msgstr "Debe seleccionar al menos un elemento de línea" #: templates/js/translated/order.js:486 msgid "Quantity to receive" -msgstr "" +msgstr "Cantidad a recibir" #: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255 msgid "Stock Status" -msgstr "" +msgstr "Estado del Stock" #: templates/js/translated/order.js:587 msgid "Order Code" -msgstr "" +msgstr "Código de Pedido" #: templates/js/translated/order.js:588 msgid "Ordered" -msgstr "" +msgstr "Pedido" #: templates/js/translated/order.js:590 msgid "Receive" -msgstr "" +msgstr "Recibir" #: templates/js/translated/order.js:609 msgid "Confirm receipt of items" -msgstr "" +msgstr "Confirmar recepción de artículos" #: templates/js/translated/order.js:610 msgid "Receive Purchase Order Items" -msgstr "" +msgstr "Recibir artículos de orden de compra" #: templates/js/translated/order.js:790 templates/js/translated/part.js:809 msgid "No purchase orders found" -msgstr "" +msgstr "No se encontraron órdenes de compra" #: templates/js/translated/order.js:815 templates/js/translated/order.js:1230 msgid "Order is overdue" -msgstr "" +msgstr "El pedido está vencido" #: templates/js/translated/order.js:936 templates/js/translated/order.js:2356 msgid "Edit Line Item" -msgstr "" +msgstr "Editar Ítem de Línea" #: templates/js/translated/order.js:948 templates/js/translated/order.js:2367 msgid "Delete Line Item" -msgstr "" +msgstr "Eliminar Ítemde Línea" #: templates/js/translated/order.js:987 msgid "No line items found" -msgstr "" +msgstr "No hay elementos de línea" #: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138 msgid "Total" -msgstr "" +msgstr "Total" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 #: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052 msgid "Unit Price" -msgstr "" +msgstr "Precio Unitario" #: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179 msgid "Total Price" -msgstr "" +msgstr "Precio Total" #: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313 msgid "Edit line item" -msgstr "" +msgstr "Editar elemento de línea" #: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317 msgid "Delete line item" -msgstr "" +msgstr "Eliminar elemento de línea" #: templates/js/translated/order.js:1166 templates/js/translated/part.js:942 msgid "Receive line item" -msgstr "" +msgstr "Recibir ítem de línea" #: templates/js/translated/order.js:1206 msgid "No sales orders found" -msgstr "" +msgstr "No se encontraron ventas" #: templates/js/translated/order.js:1244 msgid "Invalid Customer" -msgstr "" +msgstr "Cliente Inválido" #: templates/js/translated/order.js:1322 msgid "Edit shipment" -msgstr "" +msgstr "Editar envío" #: templates/js/translated/order.js:1325 msgid "Complete shipment" -msgstr "" +msgstr "Completar envío" #: templates/js/translated/order.js:1330 msgid "Delete shipment" -msgstr "" +msgstr "Eliminar envío" #: templates/js/translated/order.js:1350 msgid "Edit Shipment" -msgstr "" +msgstr "Editar envío" #: templates/js/translated/order.js:1367 msgid "Delete Shipment" -msgstr "" +msgstr "Eliminar Envío" #: templates/js/translated/order.js:1401 msgid "No matching shipments found" -msgstr "" +msgstr "No se encontraron envíos coincidentes" #: templates/js/translated/order.js:1411 msgid "Shipment Reference" -msgstr "" +msgstr "Referencia de Envío" #: templates/js/translated/order.js:1435 msgid "Not shipped" -msgstr "" +msgstr "No enviado" #: templates/js/translated/order.js:1441 msgid "Tracking" -msgstr "" +msgstr "Seguimiento" #: templates/js/translated/order.js:1601 msgid "Allocate Stock Items to Sales Order" -msgstr "" +msgstr "Asignar artículos de stock a pedido de venta" #: templates/js/translated/order.js:1809 msgid "No sales order allocations found" -msgstr "" +msgstr "No se encontraron asignaciones de órdenes" #: templates/js/translated/order.js:1898 msgid "Edit Stock Allocation" -msgstr "" +msgstr "Editar Asignación de Stock" #: templates/js/translated/order.js:1915 msgid "Confirm Delete Operation" -msgstr "" +msgstr "Confirmar Operación de Eliminar" #: templates/js/translated/order.js:1916 msgid "Delete Stock Allocation" -msgstr "" +msgstr "Eliminar Adjudicación de Stock" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 #: templates/js/translated/stock.js:1560 msgid "Shipped to customer" -msgstr "" +msgstr "Enviado al cliente" #: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057 msgid "Stock location not specified" -msgstr "" +msgstr "Ubicación de stock no especificada" #: templates/js/translated/order.js:2297 msgid "Allocate serial numbers" -msgstr "" +msgstr "Asignar números de serie" #: templates/js/translated/order.js:2303 msgid "Purchase stock" -msgstr "" +msgstr "Comprar stock" #: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476 msgid "Calculate price" -msgstr "" +msgstr "Calcular precio" #: templates/js/translated/order.js:2321 msgid "Cannot be deleted as items have been shipped" -msgstr "" +msgstr "No se puede eliminar ya que los artículos han sido enviados" #: templates/js/translated/order.js:2324 msgid "Cannot be deleted as items have been allocated" -msgstr "" +msgstr "No se puede eliminar ya que los elementos han sido asignados" #: templates/js/translated/order.js:2382 msgid "Allocate Serial Numbers" -msgstr "" +msgstr "Asignar Números de Serie" #: templates/js/translated/order.js:2484 msgid "Update Unit Price" -msgstr "" +msgstr "Actualizar Precio Unitario" #: templates/js/translated/order.js:2498 msgid "No matching line items" -msgstr "" +msgstr "No hay elementos de línea coincidentes" #: templates/js/translated/part.js:54 msgid "Part Attributes" -msgstr "" +msgstr "Atributos de Parte" #: templates/js/translated/part.js:58 msgid "Part Creation Options" -msgstr "" +msgstr "Opciones de Creación de Parte" #: templates/js/translated/part.js:62 msgid "Part Duplication Options" -msgstr "" +msgstr "Opciones de Duplicación de Parte" #: templates/js/translated/part.js:66 msgid "Supplier Options" -msgstr "" +msgstr "Opciones de Proveedor" #: templates/js/translated/part.js:80 msgid "Add Part Category" -msgstr "" +msgstr "Añadir Categoría de Parte" #: templates/js/translated/part.js:164 msgid "Create Initial Stock" -msgstr "" +msgstr "Crear Stock Inicial" #: templates/js/translated/part.js:165 msgid "Create an initial stock item for this part" -msgstr "" +msgstr "Crear un elemento inicial de stock para esta parte" #: templates/js/translated/part.js:172 msgid "Initial Stock Quantity" -msgstr "" +msgstr "Cantidad Inicial de Stock" #: templates/js/translated/part.js:173 msgid "Specify initial stock quantity for this part" -msgstr "" +msgstr "Especifique la cantidad inicial de stock para esta parte" #: templates/js/translated/part.js:180 msgid "Select destination stock location" -msgstr "" +msgstr "Seleccionar ubicación de stock de destino" #: templates/js/translated/part.js:198 msgid "Copy Category Parameters" -msgstr "" +msgstr "Copiar Parámetros de Categoría" #: templates/js/translated/part.js:199 msgid "Copy parameter templates from selected part category" -msgstr "" +msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada" #: templates/js/translated/part.js:207 msgid "Add Supplier Data" -msgstr "" +msgstr "Añadir Datos de Proveedor" #: templates/js/translated/part.js:208 msgid "Create initial supplier data for this part" -msgstr "" +msgstr "Crear datos iniciales del proveedor para esta parte" #: templates/js/translated/part.js:264 msgid "Copy Image" -msgstr "" +msgstr "Copiar Imagen" #: templates/js/translated/part.js:265 msgid "Copy image from original part" -msgstr "" +msgstr "Copiar imagen desde la parte original" #: templates/js/translated/part.js:273 msgid "Copy bill of materials from original part" -msgstr "" +msgstr "Copiar la factura de materiales de la parte original" #: templates/js/translated/part.js:280 msgid "Copy Parameters" -msgstr "" +msgstr "Copiar Parámetros" #: templates/js/translated/part.js:281 msgid "Copy parameter data from original part" -msgstr "" +msgstr "Copiar datos del parámetro de la parte original" #: templates/js/translated/part.js:294 msgid "Parent part category" -msgstr "Categoría principal de parte" +msgstr "Categoría superior de parte" #: templates/js/translated/part.js:338 msgid "Edit Part" -msgstr "" +msgstr "Editar Parte" #: templates/js/translated/part.js:340 msgid "Part edited" -msgstr "" +msgstr "Parte editada" #: templates/js/translated/part.js:351 msgid "Create Part Variant" -msgstr "" +msgstr "Crear Variante de Parte" #: templates/js/translated/part.js:418 msgid "You are subscribed to notifications for this item" -msgstr "" +msgstr "Estás suscrito a las notificaciones de este elemento" #: templates/js/translated/part.js:420 msgid "You have subscribed to notifications for this item" -msgstr "" +msgstr "Te has suscrito a las notificaciones de este elemento" #: templates/js/translated/part.js:425 msgid "Subscribe to notifications for this item" -msgstr "" +msgstr "Suscríbete a las notificaciones de este elemento" #: templates/js/translated/part.js:427 msgid "You have unsubscribed to notifications for this item" -msgstr "" +msgstr "Has cancelado la suscripción a las notificaciones de este elemento" #: templates/js/translated/part.js:444 msgid "Validating the BOM will mark each line item as valid" -msgstr "" +msgstr "Validar el BOM marcará cada elemento de línea como válido" #: templates/js/translated/part.js:454 msgid "Validate Bill of Materials" -msgstr "" +msgstr "Validar la Factura de Materiales" #: templates/js/translated/part.js:457 msgid "Validated Bill of Materials" -msgstr "" +msgstr "Validación de Lista de Materiales" #: templates/js/translated/part.js:481 msgid "Copy Bill of Materials" -msgstr "" +msgstr "Copiar Factura de Materiales" #: templates/js/translated/part.js:509 templates/js/translated/part.js:594 msgid "Trackable part" -msgstr "" +msgstr "Parte Rastreable" #: templates/js/translated/part.js:513 templates/js/translated/part.js:598 msgid "Virtual part" -msgstr "" +msgstr "Parte virtual" #: templates/js/translated/part.js:525 msgid "Subscribed part" -msgstr "" +msgstr "Parte suscrita" #: templates/js/translated/part.js:529 msgid "Salable part" -msgstr "" +msgstr "Pieza vendible" #: templates/js/translated/part.js:644 msgid "No variants found" -msgstr "" +msgstr "No se encontraron variantes" #: templates/js/translated/part.js:1012 msgid "Delete part relationship" -msgstr "" +msgstr "Eliminar relación de parte" #: templates/js/translated/part.js:1036 msgid "Delete Part Relationship" -msgstr "" +msgstr "Eliminar Relación de Parte" #: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363 msgid "No parts found" -msgstr "" +msgstr "No se encontraron partes" #: templates/js/translated/part.js:1273 msgid "No category" -msgstr "" +msgstr "Sin categoría" #: templates/js/translated/part.js:1296 #: templates/js/translated/table_filters.js:425 msgid "Low stock" -msgstr "" +msgstr "Stock bajo" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 #: templates/js/translated/stock.js:2564 msgid "Display as list" -msgstr "" +msgstr "Mostrar como lista" #: templates/js/translated/part.js:1403 msgid "Display as grid" -msgstr "" +msgstr "Mostrar como cuadrícula" #: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" -msgstr "" +msgstr "Mostrar como árbol" #: templates/js/translated/part.js:1642 msgid "Subscribed category" -msgstr "" +msgstr "Categoría suscrita" #: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" -msgstr "" +msgstr "Ruta" #: templates/js/translated/part.js:1700 msgid "No test templates matching query" -msgstr "" +msgstr "No hay plantillas de prueba que coincidan con la consulta" #: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271 msgid "Edit test result" -msgstr "" +msgstr "Editar resultado de prueba" #: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272 #: templates/js/translated/stock.js:1518 msgid "Delete test result" -msgstr "" +msgstr "Eliminar resultado de prueba" #: templates/js/translated/part.js:1758 msgid "This test is defined for a parent part" @@ -8694,112 +8703,112 @@ msgstr "Esta prueba está definida para una parte principal" #: templates/js/translated/part.js:1780 msgid "Edit Test Result Template" -msgstr "" +msgstr "Editar plantilla de resultado de prueba" #: templates/js/translated/part.js:1794 msgid "Delete Test Result Template" -msgstr "" +msgstr "Eliminar plantilla de resultados de prueba" #: templates/js/translated/part.js:1819 #, python-brace-format msgid "No ${human_name} information found" -msgstr "" +msgstr "No se encontró información de ${human_name}" #: templates/js/translated/part.js:1874 #, python-brace-format msgid "Edit ${human_name}" -msgstr "" +msgstr "Editar ${human_name}" #: templates/js/translated/part.js:1875 #, python-brace-format msgid "Delete ${human_name}" -msgstr "" +msgstr "Eliminar ${human_name}" #: templates/js/translated/part.js:1976 msgid "Single Price" -msgstr "" +msgstr "Precio Único" #: templates/js/translated/part.js:1995 msgid "Single Price Difference" -msgstr "" +msgstr "Diferencia de Precio Único" #: templates/js/translated/plugin.js:22 msgid "The Plugin was installed" -msgstr "" +msgstr "El Plugin fue Instalado" #: templates/js/translated/report.js:67 msgid "items selected" -msgstr "" +msgstr "ítems seleccionados" #: templates/js/translated/report.js:75 msgid "Select Report Template" -msgstr "" +msgstr "Seleccionar Plantilla de Informe" #: templates/js/translated/report.js:90 msgid "Select Test Report Template" -msgstr "" +msgstr "Seleccione Plantilla de Informe de Prueba" #: templates/js/translated/report.js:119 msgid "Stock item(s) must be selected before printing reports" -msgstr "" +msgstr "Elemento(s) de stock deben ser seleccionados antes de imprimir informes" #: templates/js/translated/report.js:136 templates/js/translated/report.js:189 #: templates/js/translated/report.js:243 templates/js/translated/report.js:297 #: templates/js/translated/report.js:351 msgid "No Reports Found" -msgstr "" +msgstr "No se Encontraron Informes" #: templates/js/translated/report.js:137 msgid "No report templates found which match selected stock item(s)" -msgstr "" +msgstr "No se encontraron plantillas de informe que coincidan con los artículos de stock seleccionados" #: templates/js/translated/report.js:172 msgid "Select Builds" -msgstr "" +msgstr "Seleccionar construcciones" #: templates/js/translated/report.js:173 msgid "Build(s) must be selected before printing reports" -msgstr "" +msgstr "Construccion(es) deben ser seleccionadas antes de imprimir informes" #: templates/js/translated/report.js:190 msgid "No report templates found which match selected build(s)" -msgstr "" +msgstr "No se encontraron plantillas de informe que coincidan con la construcción(es) seleccionadas" #: templates/js/translated/report.js:226 msgid "Part(s) must be selected before printing reports" -msgstr "" +msgstr "Pieza(s) deben ser seleccionadas antes de imprimir informes" #: templates/js/translated/report.js:244 msgid "No report templates found which match selected part(s)" -msgstr "" +msgstr "No se encontraron plantillas de informe que coincidan con la(s) parte(s) seleccionada(s)" #: templates/js/translated/report.js:279 msgid "Select Purchase Orders" -msgstr "" +msgstr "Seleccionar órdenes de compra" #: templates/js/translated/report.js:280 msgid "Purchase Order(s) must be selected before printing report" -msgstr "" +msgstr "Pedido(s) de compra debe ser seleccionado antes de imprimir informe" #: templates/js/translated/report.js:298 templates/js/translated/report.js:352 msgid "No report templates found which match selected orders" -msgstr "" +msgstr "No se encontraron plantillas de informe que coincidan con los pedidos seleccionados" #: templates/js/translated/report.js:333 msgid "Select Sales Orders" -msgstr "" +msgstr "Seleccionar Pedidos de Venta" #: templates/js/translated/report.js:334 msgid "Sales Order(s) must be selected before printing report" -msgstr "" +msgstr "Pedido(s) de venta debe ser seleccionado antes de imprimir el informe" #: templates/js/translated/stock.js:75 msgid "Serialize Stock Item" -msgstr "" +msgstr "Serializar Artículo de Stock" #: templates/js/translated/stock.js:103 msgid "Confirm Stock Serialization" -msgstr "" +msgstr "Confirmar Serialización de Stock" #: templates/js/translated/stock.js:112 msgid "Parent stock location" @@ -8807,244 +8816,244 @@ msgstr "Ubicación del stock principal" #: templates/js/translated/stock.js:155 msgid "New Stock Location" -msgstr "" +msgstr "Nueva Ubicación de Stock" #: templates/js/translated/stock.js:195 msgid "This part cannot be serialized" -msgstr "" +msgstr "Esta parte no se puede serializar" #: templates/js/translated/stock.js:234 msgid "Enter initial quantity for this stock item" -msgstr "" +msgstr "Introduzca la cantidad inicial para este artículo de stock" #: templates/js/translated/stock.js:240 msgid "Enter serial numbers for new stock (or leave blank)" -msgstr "" +msgstr "Introduzca números de serie para el nuevo stock (o deje en blanco)" #: templates/js/translated/stock.js:383 msgid "Created new stock item" -msgstr "" +msgstr "Crear nuevo artículo de stock" #: templates/js/translated/stock.js:396 msgid "Created multiple stock items" -msgstr "" +msgstr "Creados varios artículos de stock" #: templates/js/translated/stock.js:421 msgid "Find Serial Number" -msgstr "" +msgstr "Encontrar número serial" #: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426 msgid "Enter serial number" -msgstr "" +msgstr "Introducir número de serie" #: templates/js/translated/stock.js:442 msgid "Enter a serial number" -msgstr "" +msgstr "Introducir un número de serie" #: templates/js/translated/stock.js:462 msgid "No matching serial number" -msgstr "" +msgstr "Ningún número de serie coincidente" #: templates/js/translated/stock.js:471 msgid "More than one matching result found" -msgstr "" +msgstr "Más de un resultado encontrado" #: templates/js/translated/stock.js:516 msgid "Export Stock" -msgstr "" +msgstr "Exportar Stock" #: templates/js/translated/stock.js:527 msgid "Include Sublocations" -msgstr "" +msgstr "Incluir sub-ubicación" #: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" -msgstr "" +msgstr "Incluye artículos de stock en sub-ubicaciones" #: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" -msgstr "" +msgstr "Confirmar asignación de stock" #: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" -msgstr "" +msgstr "Asignar Stock al Cliente" #: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" -msgstr "" +msgstr "Advertencia: La operación de fusión no puede ser revertida" #: templates/js/translated/stock.js:716 msgid "Some information will be lost when merging stock items" -msgstr "" +msgstr "Alguna información se perderá al combinar artículos de stock" #: templates/js/translated/stock.js:718 msgid "Stock transaction history will be deleted for merged items" -msgstr "" +msgstr "Se eliminará el historial de transacciones de stock para elementos fusionados" #: templates/js/translated/stock.js:719 msgid "Supplier part information will be deleted for merged items" -msgstr "" +msgstr "La información de la pieza del proveedor se eliminará para los artículos fusionados" #: templates/js/translated/stock.js:805 msgid "Confirm stock item merge" -msgstr "" +msgstr "Confirmar fusión de artículos de stock" #: templates/js/translated/stock.js:806 msgid "Merge Stock Items" -msgstr "" +msgstr "Fusionar Artículos de Stock" #: templates/js/translated/stock.js:901 msgid "Transfer Stock" -msgstr "" +msgstr "Transferir Stock" #: templates/js/translated/stock.js:902 msgid "Move" -msgstr "" +msgstr "Mover" #: templates/js/translated/stock.js:908 msgid "Count Stock" -msgstr "" +msgstr "Contar Stock" #: templates/js/translated/stock.js:909 msgid "Count" -msgstr "" +msgstr "Contar" #: templates/js/translated/stock.js:913 msgid "Remove Stock" -msgstr "" +msgstr "Eliminar Stock" #: templates/js/translated/stock.js:914 msgid "Take" -msgstr "" +msgstr "Tomar" #: templates/js/translated/stock.js:918 msgid "Add Stock" -msgstr "" +msgstr "Añadir Stock" #: templates/js/translated/stock.js:919 users/models.py:213 msgid "Add" -msgstr "" +msgstr "Añadir" #: templates/js/translated/stock.js:923 templates/stock_table.html:58 msgid "Delete Stock" -msgstr "" +msgstr "Eliminar Stock" #: templates/js/translated/stock.js:1012 msgid "Quantity cannot be adjusted for serialized stock" -msgstr "" +msgstr "La cantidad no se puede ajustar para el stock serializado" #: templates/js/translated/stock.js:1012 msgid "Specify stock quantity" -msgstr "" +msgstr "Especificar cantidad de stock" #: templates/js/translated/stock.js:1052 msgid "You must select at least one available stock item" -msgstr "" +msgstr "Debe seleccionar al menos un artículo de stock disponible" #: templates/js/translated/stock.js:1210 msgid "PASS" -msgstr "" +msgstr "PASA" #: templates/js/translated/stock.js:1212 msgid "FAIL" -msgstr "" +msgstr "FALLO" #: templates/js/translated/stock.js:1217 msgid "NO RESULT" -msgstr "" +msgstr "SIN RESULTADO" #: templates/js/translated/stock.js:1264 msgid "Pass test" -msgstr "" +msgstr "Pruebas pasadas" #: templates/js/translated/stock.js:1267 msgid "Add test result" -msgstr "" +msgstr "Añadir resultado de prueba" #: templates/js/translated/stock.js:1293 msgid "No test results found" -msgstr "" +msgstr "No se encontraron resultados de prueba" #: templates/js/translated/stock.js:1349 msgid "Test Date" -msgstr "" +msgstr "Fecha de Prueba" #: templates/js/translated/stock.js:1501 msgid "Edit Test Result" -msgstr "" +msgstr "Editar Resultados de Prueba" #: templates/js/translated/stock.js:1523 msgid "Delete Test Result" -msgstr "" +msgstr "Borrar Resultado de Prueba" #: templates/js/translated/stock.js:1552 msgid "In production" -msgstr "" +msgstr "En producción" #: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" -msgstr "" +msgstr "Instalado en el artículo de stock" #: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" -msgstr "" +msgstr "Asignado a la Orden de Venta" #: templates/js/translated/stock.js:1570 msgid "No stock location set" -msgstr "" +msgstr "Ninguna ubicación de stock establecida" #: templates/js/translated/stock.js:1728 msgid "Stock item is in production" -msgstr "" +msgstr "El artículo de stock está en producción" #: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" -msgstr "" +msgstr "Artículo de stock asignado al pedido de venta" #: templates/js/translated/stock.js:1736 msgid "Stock item assigned to customer" -msgstr "" +msgstr "Artículo de stock asignado al cliente" #: templates/js/translated/stock.js:1740 msgid "Stock item has expired" -msgstr "" +msgstr "Artículo de stock ha caducado" #: templates/js/translated/stock.js:1742 msgid "Stock item will expire soon" -msgstr "" +msgstr "El artículo de stock caducará pronto" #: templates/js/translated/stock.js:1748 msgid "Serialized stock item has been allocated" -msgstr "" +msgstr "Se ha asignado un artículo de stock serializado" #: templates/js/translated/stock.js:1750 msgid "Stock item has been fully allocated" -msgstr "" +msgstr "Artículo de stock ha sido completamente asignado" #: templates/js/translated/stock.js:1752 msgid "Stock item has been partially allocated" -msgstr "" +msgstr "Artículo de stock ha sido asignado parcialmente" #: templates/js/translated/stock.js:1757 msgid "Stock item has been installed in another item" -msgstr "" +msgstr "Artículo de stock ha sido instalado en otro artículo" #: templates/js/translated/stock.js:1764 msgid "Stock item has been rejected" -msgstr "" +msgstr "Artículo de stock ha sido rechazado" #: templates/js/translated/stock.js:1766 msgid "Stock item is lost" -msgstr "" +msgstr "Artículo de stock perdido" #: templates/js/translated/stock.js:1768 msgid "Stock item is destroyed" -msgstr "" +msgstr "Artículo de stock destruido" #: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" -msgstr "" +msgstr "Agotado" #: templates/js/translated/stock.js:1822 msgid "Stocktake" @@ -9052,91 +9061,91 @@ msgstr "Inventario" #: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" -msgstr "" +msgstr "Parte del proveedor no especificada" #: templates/js/translated/stock.js:1933 msgid "No stock items matching query" -msgstr "" +msgstr "No hay artículos de stock que coincidan con la consulta" #: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002 msgid "items" -msgstr "" +msgstr "elementos" #: templates/js/translated/stock.js:2042 msgid "batches" -msgstr "" +msgstr "lotes" #: templates/js/translated/stock.js:2069 msgid "locations" -msgstr "" +msgstr "ubicaciones" #: templates/js/translated/stock.js:2071 msgid "Undefined location" -msgstr "" +msgstr "Ubicación indefinida" #: templates/js/translated/stock.js:2270 msgid "Set Stock Status" -msgstr "" +msgstr "Establecer estado de stock" #: templates/js/translated/stock.js:2284 msgid "Select Status Code" -msgstr "" +msgstr "Seleccionar Código de Estado" #: templates/js/translated/stock.js:2285 msgid "Status code must be selected" -msgstr "" +msgstr "Debe seleccionar el código de estado" #: templates/js/translated/stock.js:2464 msgid "Allocated Quantity" -msgstr "" +msgstr "Cantidad Asignada" #: templates/js/translated/stock.js:2659 msgid "Invalid date" -msgstr "" +msgstr "Fecha inválida" #: templates/js/translated/stock.js:2681 msgid "Details" -msgstr "" +msgstr "Detalles" #: templates/js/translated/stock.js:2706 msgid "Location no longer exists" -msgstr "" +msgstr "Ubicación ya no existe" #: templates/js/translated/stock.js:2725 msgid "Purchase order no longer exists" -msgstr "" +msgstr "La orden de compra ya no existe" #: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" -msgstr "" +msgstr "El cliente ya no existe" #: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" -msgstr "" +msgstr "Artículo de stock ya no existe" #: templates/js/translated/stock.js:2785 msgid "Added" -msgstr "" +msgstr "Añadido" #: templates/js/translated/stock.js:2793 msgid "Removed" -msgstr "" +msgstr "Eliminado" #: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" -msgstr "" +msgstr "Editar entrada de rastreo" #: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" -msgstr "" +msgstr "Eliminar entrada de rastreo" #: templates/js/translated/stock.js:2886 msgid "No installed items" -msgstr "" +msgstr "Ningún elemento instalado" #: templates/js/translated/stock.js:2937 msgid "Uninstall Stock Item" -msgstr "" +msgstr "Desinstalar elemento de stock" #: templates/js/translated/stock.js:2973 msgid "Install another stock item into this item" @@ -9144,7 +9153,7 @@ msgstr "" #: templates/js/translated/stock.js:2974 msgid "Stock items can only be installed if they meet the following criteria" -msgstr "" +msgstr "Los artículos de stock sólo pueden ser instalados si cumplen con los siguientes criterios" #: templates/js/translated/stock.js:2976 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" @@ -9156,7 +9165,7 @@ msgstr "" #: templates/js/translated/stock.js:2978 msgid "The Stock Item is serialized and does not belong to another item" -msgstr "" +msgstr "El artículo de stock está serializado y no pertenece a otro artículo" #: templates/js/translated/stock.js:2991 msgid "Select part to install" @@ -9164,154 +9173,154 @@ msgstr "" #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" -msgstr "" +msgstr "Parte Rastreable" #: templates/js/translated/table_filters.js:60 msgid "Assembled Part" -msgstr "" +msgstr "Parte Ensamblada" #: templates/js/translated/table_filters.js:64 msgid "Validated" -msgstr "" +msgstr "Validado" #: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" -msgstr "" +msgstr "Permitir stock de variante" #: templates/js/translated/table_filters.js:110 #: templates/js/translated/table_filters.js:183 msgid "Include sublocations" -msgstr "" +msgstr "Incluir sub-ubicación" #: templates/js/translated/table_filters.js:111 msgid "Include locations" -msgstr "" +msgstr "Incluir ubicaciones" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 #: templates/js/translated/table_filters.js:402 msgid "Include subcategories" -msgstr "" +msgstr "Incluir subcategorías" #: templates/js/translated/table_filters.js:126 #: templates/js/translated/table_filters.js:437 msgid "Subscribed" -msgstr "" +msgstr "Suscrito" #: templates/js/translated/table_filters.js:136 #: templates/js/translated/table_filters.js:218 msgid "Is Serialized" -msgstr "" +msgstr "Es Serializado" #: templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:225 msgid "Serial number GTE" -msgstr "" +msgstr "Número Serial GTE" #: templates/js/translated/table_filters.js:140 #: templates/js/translated/table_filters.js:226 msgid "Serial number greater than or equal to" -msgstr "" +msgstr "Número de serie mayor o igual a" #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:229 msgid "Serial number LTE" -msgstr "" +msgstr "Número Serial LTE" #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:230 msgid "Serial number less than or equal to" -msgstr "" +msgstr "Número de serie menor o igual que" #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:148 #: templates/js/translated/table_filters.js:221 #: templates/js/translated/table_filters.js:222 msgid "Serial number" -msgstr "" +msgstr "Número de serie" #: templates/js/translated/table_filters.js:152 #: templates/js/translated/table_filters.js:239 msgid "Batch code" -msgstr "" +msgstr "Código de lote" #: templates/js/translated/table_filters.js:163 #: templates/js/translated/table_filters.js:374 msgid "Active parts" -msgstr "" +msgstr "Partes activas" #: templates/js/translated/table_filters.js:164 msgid "Show stock for active parts" -msgstr "" +msgstr "Mostrar stock para las partes activas" #: templates/js/translated/table_filters.js:169 msgid "Part is an assembly" -msgstr "" +msgstr "Parte es un ensamblado" #: templates/js/translated/table_filters.js:173 msgid "Is allocated" -msgstr "" +msgstr "Está asignado" #: templates/js/translated/table_filters.js:174 msgid "Item has been allocated" -msgstr "" +msgstr "El artículo ha sido asignado" #: templates/js/translated/table_filters.js:179 msgid "Stock is available for use" -msgstr "" +msgstr "Stock disponible para uso" #: templates/js/translated/table_filters.js:184 msgid "Include stock in sublocations" -msgstr "" +msgstr "Incluye stock en sub-ubicaciones" #: templates/js/translated/table_filters.js:189 msgid "Show stock items which are depleted" -msgstr "" +msgstr "Mostrar artículos de stock que están agotados" #: templates/js/translated/table_filters.js:194 msgid "Show items which are in stock" -msgstr "" +msgstr "Mostrar elementos en stock" #: templates/js/translated/table_filters.js:198 msgid "In Production" -msgstr "" +msgstr "En Producción" #: templates/js/translated/table_filters.js:199 msgid "Show items which are in production" -msgstr "" +msgstr "Mostrar artículos que están en producción" #: templates/js/translated/table_filters.js:203 msgid "Include Variants" -msgstr "" +msgstr "Incluye Variantes" #: templates/js/translated/table_filters.js:204 msgid "Include stock items for variant parts" -msgstr "" +msgstr "Incluye artículos de stock para partes de variantes" #: templates/js/translated/table_filters.js:208 msgid "Installed" -msgstr "" +msgstr "Instalado" #: templates/js/translated/table_filters.js:209 msgid "Show stock items which are installed in another item" -msgstr "" +msgstr "Mostrar elementos de stock que están instalados en otro artículo" #: templates/js/translated/table_filters.js:214 msgid "Show items which have been assigned to a customer" -msgstr "" +msgstr "Mostrar elementos que han sido asignados a un cliente" #: templates/js/translated/table_filters.js:234 #: templates/js/translated/table_filters.js:235 msgid "Stock status" -msgstr "" +msgstr "Estado del stock" #: templates/js/translated/table_filters.js:243 msgid "Has purchase price" -msgstr "" +msgstr "Tiene precio de compra" #: templates/js/translated/table_filters.js:244 msgid "Show stock items which have a purchase price set" -msgstr "" +msgstr "Mostrar artículos de stock que tienen un precio de compra establecido" #: templates/js/translated/table_filters.js:253 msgid "Show stock items which have expired" @@ -9319,330 +9328,330 @@ msgstr "Mostrar artículos de stock que han caducado" #: templates/js/translated/table_filters.js:259 msgid "Show stock which is close to expiring" -msgstr "" +msgstr "Mostrar stock que está cerca de caducar" #: templates/js/translated/table_filters.js:285 msgid "Build status" -msgstr "" +msgstr "Estado de la construcción" #: templates/js/translated/table_filters.js:298 #: templates/js/translated/table_filters.js:339 msgid "Assigned to me" -msgstr "" +msgstr "Asignado a mí" #: templates/js/translated/table_filters.js:315 #: templates/js/translated/table_filters.js:326 #: templates/js/translated/table_filters.js:347 msgid "Order status" -msgstr "" +msgstr "Estado del pedido" #: templates/js/translated/table_filters.js:331 #: templates/js/translated/table_filters.js:352 msgid "Outstanding" -msgstr "" +msgstr "Pendiente" #: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" -msgstr "" +msgstr "Incluye partes en subcategorías" #: templates/js/translated/table_filters.js:407 msgid "Has IPN" -msgstr "" +msgstr "Tiene IPN" #: templates/js/translated/table_filters.js:408 msgid "Part has internal part number" -msgstr "" +msgstr "La parte tiene número de pieza interno" #: templates/js/translated/table_filters.js:413 msgid "Show active parts" -msgstr "" +msgstr "Mostrar partes activas" #: templates/js/translated/table_filters.js:421 msgid "Stock available" -msgstr "" +msgstr "Stock disponible" #: templates/js/translated/table_filters.js:449 msgid "Purchasable" -msgstr "" +msgstr "Comprable" #: templates/js/translated/tables.js:368 msgid "Loading data" -msgstr "" +msgstr "Cargando datos" #: templates/js/translated/tables.js:371 msgid "rows per page" -msgstr "" +msgstr "filas por página" #: templates/js/translated/tables.js:376 msgid "Showing all rows" -msgstr "" +msgstr "Mostrar todas las filas" #: templates/js/translated/tables.js:378 msgid "Showing" -msgstr "" +msgstr "Mostrando" #: templates/js/translated/tables.js:378 msgid "to" -msgstr "" +msgstr "para" #: templates/js/translated/tables.js:378 msgid "of" -msgstr "" +msgstr "de" #: templates/js/translated/tables.js:378 msgid "rows" -msgstr "" +msgstr "filas" #: templates/js/translated/tables.js:382 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" -msgstr "" +msgstr "Buscar" #: templates/js/translated/tables.js:385 msgid "No matching results" -msgstr "" +msgstr "No se encontraron resultados" #: templates/js/translated/tables.js:388 msgid "Hide/Show pagination" -msgstr "" +msgstr "Ocultar/Mostrar paginación" #: templates/js/translated/tables.js:391 msgid "Refresh" -msgstr "" +msgstr "Actualizar" #: templates/js/translated/tables.js:394 msgid "Toggle" -msgstr "" +msgstr "Alternar" #: templates/js/translated/tables.js:397 msgid "Columns" -msgstr "" +msgstr "Columnas" #: templates/js/translated/tables.js:400 msgid "All" -msgstr "" +msgstr "Todo" #: templates/navbar.html:42 msgid "Buy" -msgstr "" +msgstr "Comprar" #: templates/navbar.html:54 msgid "Sell" -msgstr "" +msgstr "Vender" #: templates/navbar.html:114 msgid "Logout" -msgstr "" +msgstr "Cerrar sesión" #: templates/navbar.html:116 msgid "Login" -msgstr "" +msgstr "Iniciar sesión" #: templates/navbar.html:136 msgid "About InvenTree" -msgstr "" +msgstr "Acerca de InvenTree" #: templates/navbar_demo.html:5 msgid "InvenTree demo mode" -msgstr "" +msgstr "Modo demo de InvenTree" #: templates/qr_code.html:11 msgid "QR data not provided" -msgstr "" +msgstr "Datos QR no proporcionados" #: templates/registration/logged_out.html:6 msgid "You were logged out successfully." -msgstr "" +msgstr "Se ha cerrado la sesión correctamente." #: templates/registration/logged_out.html:8 msgid "Log in again" -msgstr "" +msgstr "Volver a ingresar" #: templates/stats.html:9 msgid "Server" -msgstr "" +msgstr "Servidor" #: templates/stats.html:13 msgid "Instance Name" -msgstr "" +msgstr "Nombre de Instancia" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "Base de datos" #: templates/stats.html:26 msgid "Server is running in debug mode" -msgstr "" +msgstr "El servidor se está ejecutando en modo depuración" #: templates/stats.html:33 msgid "Docker Mode" -msgstr "" +msgstr "Modo Docker" #: templates/stats.html:34 msgid "Server is deployed using docker" -msgstr "" +msgstr "El servidor está desplegado usando docker" #: templates/stats.html:39 msgid "Plugin Support" -msgstr "" +msgstr "Soporte para Plugins" #: templates/stats.html:43 msgid "Plugin support enabled" -msgstr "" +msgstr "Soporte de plugins habilitado" #: templates/stats.html:45 msgid "Plugin support disabled" -msgstr "" +msgstr "Soporte de plugins desactivado" #: templates/stats.html:52 msgid "Server status" -msgstr "" +msgstr "Estado del servidor" #: templates/stats.html:55 msgid "Healthy" -msgstr "" +msgstr "Healthy" #: templates/stats.html:57 msgid "Issues detected" -msgstr "" +msgstr "Problemas detectados" #: templates/stats.html:64 msgid "Background Worker" -msgstr "" +msgstr "Trabajador en segundo plano" #: templates/stats.html:67 msgid "Background worker not running" -msgstr "" +msgstr "Trabajador en segundo plano no ejecutado" #: templates/stats.html:75 msgid "Email Settings" -msgstr "" +msgstr "Configuración de Email" #: templates/stats.html:78 msgid "Email settings not configured" -msgstr "" +msgstr "Configuración de correo no configurada" #: templates/stock_table.html:14 msgid "Export Stock Information" -msgstr "" +msgstr "Exportar información de stock" #: templates/stock_table.html:20 msgid "Barcode Actions" -msgstr "" +msgstr "Acciones de código de barras" #: templates/stock_table.html:36 msgid "Print test reports" -msgstr "" +msgstr "Imprimir informes de prueba" #: templates/stock_table.html:43 msgid "Stock Options" -msgstr "" +msgstr "Opciones Stock" #: templates/stock_table.html:48 msgid "Add to selected stock items" -msgstr "Añadir a los artículos de stock seleccionados" +msgstr "Añadir a los elementos de stock seleccionados" #: templates/stock_table.html:49 msgid "Remove from selected stock items" -msgstr "Eliminar de los artículos de stock seleccionados" +msgstr "Eliminar de los elementos de stock seleccionados" #: templates/stock_table.html:50 msgid "Stocktake selected stock items" -msgstr "Inventario de artículos de stock seleccionados" +msgstr "Artículos de stock seleccionados" #: templates/stock_table.html:51 msgid "Move selected stock items" -msgstr "Mover artículos de stock seleccionados" +msgstr "Mover elementos de stock seleccionados" #: templates/stock_table.html:51 msgid "Move stock" -msgstr "" +msgstr "Mover stock" #: templates/stock_table.html:52 msgid "Merge selected stock items" -msgstr "" +msgstr "Combinar artículos de stock seleccionados" #: templates/stock_table.html:52 msgid "Merge stock" -msgstr "" +msgstr "Fusionar stock" #: templates/stock_table.html:53 msgid "Order selected items" -msgstr "Pedir artículos seleccionados" +msgstr "Ordenar artículos seleccionados" #: templates/stock_table.html:55 msgid "Change status" -msgstr "" +msgstr "Cambiar estado" #: templates/stock_table.html:55 msgid "Change stock status" -msgstr "" +msgstr "Cambiar estado de stock" #: templates/stock_table.html:58 msgid "Delete selected items" -msgstr "Eliminar artículos seleccionados" +msgstr "Eliminar elementos seleccionados" #: templates/yesnolabel.html:4 msgid "Yes" -msgstr "" +msgstr "Sí" #: templates/yesnolabel.html:6 msgid "No" -msgstr "" +msgstr "No" #: users/admin.py:64 msgid "Users" -msgstr "" +msgstr "Usuarios" #: users/admin.py:65 msgid "Select which users are assigned to this group" -msgstr "" +msgstr "Seleccione qué usuarios están asignados a este grupo" #: users/admin.py:187 msgid "The following users are members of multiple groups:" -msgstr "" +msgstr "Los siguientes usuarios son miembros de varios grupos:" #: users/admin.py:210 msgid "Personal info" -msgstr "" +msgstr "Información personal" #: users/admin.py:211 msgid "Permissions" -msgstr "" +msgstr "Permisos" #: users/admin.py:214 msgid "Important dates" -msgstr "" +msgstr "Fechas importantes" #: users/models.py:200 msgid "Permission set" -msgstr "" +msgstr "Permiso establecido" #: users/models.py:208 msgid "Group" -msgstr "" +msgstr "Grupo" #: users/models.py:211 msgid "View" -msgstr "" +msgstr "Vista" #: users/models.py:211 msgid "Permission to view items" -msgstr "Permiso para ver artículos" +msgstr "Permiso para ver elementos" #: users/models.py:213 msgid "Permission to add items" -msgstr "Permiso para añadir artículos" +msgstr "Permiso para añadir elementos" #: users/models.py:215 msgid "Change" -msgstr "" +msgstr "Cambiar" #: users/models.py:215 msgid "Permissions to edit items" -msgstr "Permisos para editar artículos" +msgstr "Permisos para editar elementos" #: users/models.py:217 msgid "Permission to delete items" -msgstr "Permiso para eliminar artículos" +msgstr "Permiso para eliminar elementos" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index d504f75c52..075b0105ee 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "Hebrew" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Italian" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Japanese" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Korean" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Dutch" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Norwegian" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "Portugais" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Russian" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Swedish" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Thai" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Vietnamese" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Chinese" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 1e499733e1..15375cff1e 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "עברית" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "איטלקית" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "יפנית" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "קוריאנית" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "הולנדית" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "נורווגית" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "פולנית" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "פורטוגזית" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "רוסית" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "שוודית" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "תאילנדית" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "טורקית" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "ווייטנאמית" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "סינית" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index cbba57513b..e4b2cedd70 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -1,141 +1,140 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# #: templates/js/translated/order.js:1973 -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-22 11:37+1100\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: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 23:18\n" +"Last-Translator: \n" +"Language-Team: Hungarian\n" +"Language: hu_HU\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" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: hu\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" #: InvenTree/api.py:55 msgid "API endpoint not found" -msgstr "" +msgstr "API funkciót nem találom" #: InvenTree/api.py:101 msgid "No action specified" -msgstr "" +msgstr "Nincs megadva művelet" #: InvenTree/api.py:116 msgid "No matching action found" -msgstr "" +msgstr "Nincs egyező művelet" #: InvenTree/fields.py:100 msgid "Enter date" -msgstr "" +msgstr "Dátum megadása" #: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 #: order/forms.py:57 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:596 msgid "Confirm" -msgstr "" +msgstr "Megerősítés" #: InvenTree/forms.py:142 msgid "Confirm delete" -msgstr "" +msgstr "Törlés megerősítése" #: InvenTree/forms.py:143 msgid "Confirm item deletion" -msgstr "" +msgstr "Tétel törlés megerősítése" #: InvenTree/forms.py:174 msgid "Enter password" -msgstr "" +msgstr "Jelszó megadása" #: InvenTree/forms.py:175 msgid "Enter new password" -msgstr "" +msgstr "Új jelszó megadása" #: InvenTree/forms.py:182 msgid "Confirm password" -msgstr "" +msgstr "Jelszó megerősítése" #: InvenTree/forms.py:183 msgid "Confirm new password" -msgstr "" +msgstr "Új jelszó megerősítése" #: InvenTree/forms.py:215 msgid "Select Category" -msgstr "" +msgstr "Válassz kategóriát" #: InvenTree/forms.py:236 msgid "Email (again)" -msgstr "" +msgstr "Email (újra)" #: InvenTree/forms.py:240 msgid "Email address confirmation" -msgstr "" +msgstr "Email cím megerősítés" #: InvenTree/forms.py:260 msgid "You must type the same email each time." -msgstr "" +msgstr "Mindig ugyanazt az email címet kell beírni." #: InvenTree/helpers.py:439 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "Duplikált sorozatszám: {n}" #: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425 #: stock/views.py:1082 msgid "Invalid quantity provided" -msgstr "" +msgstr "Nem megfelelő mennyiség" #: InvenTree/helpers.py:449 msgid "Empty serial number string" -msgstr "" +msgstr "Üres sorozatszám" #: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477 #: InvenTree/helpers.py:501 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Érvénytelen csoport: {g}" #: InvenTree/helpers.py:510 #, python-brace-format msgid "Invalid group {group}" -msgstr "" +msgstr "Érvénytelen csoport {group}" #: InvenTree/helpers.py:516 #, python-brace-format msgid "Invalid/no group {group}" -msgstr "" +msgstr "Érvénytelen vagy nemlétező csoport {group}" #: InvenTree/helpers.py:522 msgid "No serial numbers found" -msgstr "" +msgstr "Nem található sorozatszám" #: InvenTree/helpers.py:526 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "" +msgstr "Az egyedi sorozatszámok száma ({s}) meg kell egyezzen a mennyiséggel ({q})" #: InvenTree/models.py:176 msgid "Missing file" -msgstr "" +msgstr "Hiányzó fájl" #: InvenTree/models.py:177 msgid "Missing external link" -msgstr "" +msgstr "Hiányzó külső link" #: InvenTree/models.py:188 stock/models.py:1995 #: templates/js/translated/attachment.js:119 msgid "Attachment" -msgstr "" +msgstr "Melléklet" #: InvenTree/models.py:189 msgid "Select file to attach" -msgstr "" +msgstr "Válaszd ki a mellekelni kívánt fájlt" #: InvenTree/models.py:195 company/models.py:131 company/models.py:348 #: company/models.py:564 order/models.py:127 part/models.py:860 @@ -143,20 +142,20 @@ msgstr "" #: templates/js/translated/company.js:540 #: templates/js/translated/company.js:829 templates/js/translated/part.js:1324 msgid "Link" -msgstr "" +msgstr "Link" #: InvenTree/models.py:196 build/models.py:332 part/models.py:861 #: stock/models.py:529 msgid "Link to external URL" -msgstr "" +msgstr "Link külső URL-re" #: InvenTree/models.py:199 templates/js/translated/attachment.js:163 msgid "Comment" -msgstr "" +msgstr "Megjegyzés" #: InvenTree/models.py:199 msgid "File comment" -msgstr "" +msgstr "Fájl megjegyzés" #: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235 #: common/models.py:1236 common/models.py:1464 common/models.py:1465 @@ -164,44 +163,44 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2816 msgid "User" -msgstr "" +msgstr "Felhasználó" #: InvenTree/models.py:209 msgid "upload date" -msgstr "" +msgstr "feltöltés dátuma" #: InvenTree/models.py:232 msgid "Filename must not be empty" -msgstr "" +msgstr "A fájlnév nem lehet üres" #: InvenTree/models.py:255 msgid "Invalid attachment directory" -msgstr "" +msgstr "Érvénytelen melléklet mappa" #: InvenTree/models.py:265 #, python-brace-format msgid "Filename contains illegal character '{c}'" -msgstr "" +msgstr "Fájlnévben érvénytelen karakter van '{c}'" #: InvenTree/models.py:268 msgid "Filename missing extension" -msgstr "" +msgstr "Fájlnév kiterjesztése hiányzik" #: InvenTree/models.py:275 msgid "Attachment with this filename already exists" -msgstr "" +msgstr "Ilyen fájlnévvel már létezik melléklet" #: InvenTree/models.py:282 msgid "Error renaming file" -msgstr "" +msgstr "Hiba a fájl átnevezésekor" #: InvenTree/models.py:317 msgid "Invalid choice" -msgstr "" +msgstr "Érvénytelen választás" #: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450 #: company/models.py:415 label/models.py:112 part/models.py:804 -#: part/models.py:2485 plugin/models.py:40 report/models.py:177 +#: part/models.py:2485 plugin/models.py:40 report/models.py:181 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:48 #: templates/InvenTree/settings/plugin.html:125 @@ -211,7 +210,7 @@ msgstr "" #: templates/js/translated/part.js:706 templates/js/translated/part.js:1631 #: templates/js/translated/stock.js:2609 msgid "Name" -msgstr "" +msgstr "Név" #: InvenTree/models.py:340 build/models.py:209 #: build/templates/build/detail.html:25 company/models.py:354 @@ -220,7 +219,7 @@ msgstr "" #: company/templates/company/supplier_part.html:73 label/models.py:119 #: order/models.py:125 part/models.py:827 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 -#: part/templates/part/set_category.html:14 report/models.py:190 +#: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 #: stock/templates/stock/location.html:93 @@ -236,423 +235,423 @@ msgstr "" #: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438 #: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666 msgid "Description" -msgstr "" +msgstr "Leírás" #: InvenTree/models.py:341 msgid "Description (optional)" -msgstr "" +msgstr "Leírás (opcionális)" #: InvenTree/models.py:349 msgid "parent" -msgstr "" +msgstr "szülő" #: InvenTree/serializers.py:65 part/models.py:2803 msgid "Must be a valid number" -msgstr "" +msgstr "Érvényes számnak kell lennie" #: InvenTree/serializers.py:299 msgid "Filename" -msgstr "" +msgstr "Fájlnév" #: InvenTree/serializers.py:334 msgid "Invalid value" -msgstr "" +msgstr "Érvénytelen érték" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "Adat fájl" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "Fájl kiválasztása feltöltéshez" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Nem támogatott fájltípus" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "Fájl túl nagy" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "Nem találhatók oszlopok a fájlban" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "Nincsenek adatsorok a fájlban" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Nincs adatsor megadva" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "Nincs adat oszlop megadva" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Szükséges oszlop hiányzik: '{name}'" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" -msgstr "" +msgstr "Duplikált oszlop: '{col}'" #: InvenTree/settings.py:655 msgid "German" -msgstr "" +msgstr "Német" #: InvenTree/settings.py:656 msgid "Greek" -msgstr "" +msgstr "Görög" #: InvenTree/settings.py:657 msgid "English" -msgstr "" +msgstr "Angol" #: InvenTree/settings.py:658 msgid "Spanish" -msgstr "" +msgstr "Spanyol" #: InvenTree/settings.py:659 msgid "Spanish (Mexican)" -msgstr "" +msgstr "Spanyol (Mexikói)" #: InvenTree/settings.py:660 msgid "French" -msgstr "" +msgstr "Francia" #: InvenTree/settings.py:661 msgid "Hebrew" -msgstr "" +msgstr "Héber" #: InvenTree/settings.py:662 msgid "Hungarian" -msgstr "" +msgstr "Magyar" #: InvenTree/settings.py:663 msgid "Italian" -msgstr "" +msgstr "Olasz" #: InvenTree/settings.py:664 msgid "Japanese" -msgstr "" +msgstr "Japán" #: InvenTree/settings.py:665 msgid "Korean" -msgstr "" +msgstr "Koreai" #: InvenTree/settings.py:666 msgid "Dutch" -msgstr "" +msgstr "Holland" #: InvenTree/settings.py:667 msgid "Norwegian" -msgstr "" +msgstr "Norvég" #: InvenTree/settings.py:668 msgid "Polish" -msgstr "" +msgstr "Lengyel" #: InvenTree/settings.py:669 msgid "Portugese" -msgstr "" +msgstr "Portugál" #: InvenTree/settings.py:670 msgid "Russian" -msgstr "" +msgstr "Orosz" #: InvenTree/settings.py:671 msgid "Swedish" -msgstr "" +msgstr "Svéd" #: InvenTree/settings.py:672 msgid "Thai" -msgstr "" +msgstr "Tháj" #: InvenTree/settings.py:673 msgid "Turkish" -msgstr "" +msgstr "Török" #: InvenTree/settings.py:674 msgid "Vietnamese" -msgstr "" +msgstr "Vietnámi" #: InvenTree/settings.py:675 msgid "Chinese" -msgstr "" +msgstr "Kínai" #: InvenTree/status.py:94 msgid "Background worker check failed" -msgstr "" +msgstr "Háttér folyamat ellenőrzés sikertelen" #: InvenTree/status.py:98 msgid "Email backend not configured" -msgstr "" +msgstr "Email backend nincs beállítva" #: InvenTree/status.py:101 msgid "InvenTree system health checks failed" -msgstr "" +msgstr "InvenTree rendszer állapotának ellenőrzése sikertelen" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 #: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308 msgid "Pending" -msgstr "" +msgstr "Függőben" #: InvenTree/status_codes.py:102 msgid "Placed" -msgstr "" +msgstr "Kiküldve" #: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" -msgstr "" +msgstr "Kész" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 #: InvenTree/status_codes.py:318 msgid "Cancelled" -msgstr "" +msgstr "Törölve" #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:187 msgid "Lost" -msgstr "" +msgstr "Elveszett" #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 #: InvenTree/status_codes.py:189 msgid "Returned" -msgstr "" +msgstr "Visszaküldve" #: InvenTree/status_codes.py:143 order/models.py:961 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" -msgstr "" +msgstr "Kiszállítva" #: InvenTree/status_codes.py:183 msgid "OK" -msgstr "" +msgstr "Rendben" #: InvenTree/status_codes.py:184 msgid "Attention needed" -msgstr "" +msgstr "Ellenőrizendő" #: InvenTree/status_codes.py:185 msgid "Damaged" -msgstr "" +msgstr "Sérült" #: InvenTree/status_codes.py:186 msgid "Destroyed" -msgstr "" +msgstr "Megsemmisült" #: InvenTree/status_codes.py:188 msgid "Rejected" -msgstr "" +msgstr "Elutasított" #: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" -msgstr "" +msgstr "Örökölt készlet követési bejegyzés" #: InvenTree/status_codes.py:274 msgid "Stock item created" -msgstr "" +msgstr "Készlet tétel létrehozva" #: InvenTree/status_codes.py:276 msgid "Edited stock item" -msgstr "" +msgstr "Szerkeszett készlet tétel" #: InvenTree/status_codes.py:277 msgid "Assigned serial number" -msgstr "" +msgstr "Hozzárendelt sorozatszám" #: InvenTree/status_codes.py:279 msgid "Stock counted" -msgstr "" +msgstr "Készlet megszámolva" #: InvenTree/status_codes.py:280 msgid "Stock manually added" -msgstr "" +msgstr "Készlet manuálisan hozzáadva" #: InvenTree/status_codes.py:281 msgid "Stock manually removed" -msgstr "" +msgstr "Készlet manuálisan elvéve" #: InvenTree/status_codes.py:283 msgid "Location changed" -msgstr "" +msgstr "Hely megváltozott" #: InvenTree/status_codes.py:285 msgid "Installed into assembly" -msgstr "" +msgstr "Szerelvénybe beépült" #: InvenTree/status_codes.py:286 msgid "Removed from assembly" -msgstr "" +msgstr "Szerelvényből eltávolítva" #: InvenTree/status_codes.py:288 msgid "Installed component item" -msgstr "" +msgstr "Beépült összetevő tétel" #: InvenTree/status_codes.py:289 msgid "Removed component item" -msgstr "" +msgstr "Eltávolított összetevő tétel" #: InvenTree/status_codes.py:291 msgid "Split from parent item" -msgstr "" +msgstr "Szülő tételből szétválasztva" #: InvenTree/status_codes.py:292 msgid "Split child item" -msgstr "" +msgstr "Szétválasztott gyermek tétel" #: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196 msgid "Merged stock items" -msgstr "" +msgstr "Összevont készlet tétel" #: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" -msgstr "" +msgstr "Vevőnek elküldve" #: InvenTree/status_codes.py:297 msgid "Returned from customer" -msgstr "" +msgstr "Vevőtől visszaérkezett" #: InvenTree/status_codes.py:299 msgid "Build order output created" -msgstr "" +msgstr "Gyártási rendelés kimenete elkészült" #: InvenTree/status_codes.py:300 msgid "Build order output completed" -msgstr "" +msgstr "Gyártási rendelés kimenete kész" #: InvenTree/status_codes.py:302 msgid "Received against purchase order" -msgstr "" +msgstr "Megrendelésre érkezett" #: InvenTree/status_codes.py:317 msgid "Production" -msgstr "" +msgstr "Termelés" #: InvenTree/validators.py:25 msgid "Not a valid currency code" -msgstr "" +msgstr "Érvénytelen pénznem kód" #: InvenTree/validators.py:53 msgid "Invalid character in part name" -msgstr "" +msgstr "Érvénytelen karakter az alkatrész névben" #: InvenTree/validators.py:66 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "IPN mezőnek egyeznie kell a '{pat}' mintával" #: InvenTree/validators.py:80 InvenTree/validators.py:94 #: InvenTree/validators.py:108 #, python-brace-format msgid "Reference must match pattern {pattern}" -msgstr "" +msgstr "Referenciának egyeznie kell a '{pattern}' mintával" #: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "" +msgstr "Érvénytelen karakter ({x}) a névben" #: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" -msgstr "" +msgstr "Túlszállítás nem lehet negatív" #: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" -msgstr "" +msgstr "Túlszállítás nem lehet több mint 100%" #: InvenTree/validators.py:162 msgid "Invalid value for overage" -msgstr "" +msgstr "Érvénytelen érték a túlszállításra" #: InvenTree/views.py:538 msgid "Delete Item" -msgstr "" +msgstr "Tétel törlése" #: InvenTree/views.py:587 msgid "Check box to confirm item deletion" -msgstr "" +msgstr "Jelöld a törlés megerősítéséhez" #: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" -msgstr "" +msgstr "Felhasználói információ módosítása" #: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" -msgstr "" +msgstr "Jelszó beállítása" #: InvenTree/views.py:632 msgid "Password fields must match" -msgstr "" +msgstr "A jelszavaknak egyeznie kell" #: InvenTree/views.py:883 templates/navbar.html:126 msgid "System Information" -msgstr "" +msgstr "Rendszerinformáció" #: barcodes/api.py:54 barcodes/api.py:152 msgid "Must provide barcode_data parameter" -msgstr "" +msgstr "Meg kell adni a barcode_data paramétert" #: barcodes/api.py:128 msgid "No match found for barcode data" -msgstr "" +msgstr "Nincs egyező vonalkód" #: barcodes/api.py:130 msgid "Match found for barcode data" -msgstr "" +msgstr "Egyezés vonalkódra" #: barcodes/api.py:155 msgid "Must provide stockitem parameter" -msgstr "" +msgstr "Meg kell adni a stockitem paramétert" #: barcodes/api.py:162 msgid "No matching stock item found" -msgstr "" +msgstr "Nincs egyező készlet" #: barcodes/api.py:193 msgid "Barcode already matches Stock Item" -msgstr "" +msgstr "Vonalkód már egyezik a készlet tétellel" #: barcodes/api.py:197 msgid "Barcode already matches Stock Location" -msgstr "" +msgstr "Vonalkód már egyezik a készlet hellyel" #: barcodes/api.py:201 msgid "Barcode already matches Part" -msgstr "" +msgstr "Vonalkód már egyezik az alkatrésszel" #: barcodes/api.py:207 barcodes/api.py:219 msgid "Barcode hash already matches Stock Item" -msgstr "" +msgstr "Vonalkód hash már egyezik a készlet tétellel" #: barcodes/api.py:225 msgid "Barcode associated with Stock Item" -msgstr "" +msgstr "Készlet tételhez tartozó vonalkód" #: build/forms.py:20 msgid "Confirm cancel" -msgstr "" +msgstr "Megszakítás megerősítése" #: build/forms.py:20 build/views.py:62 msgid "Confirm build cancellation" -msgstr "" +msgstr "Gyártás megszakításának megerősítése" #: build/models.py:135 msgid "Invalid choice for parent build" -msgstr "" +msgstr "Hibás választás a szülő gyártásra" #: build/models.py:139 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_base.html:106 #: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414 msgid "Build Order" -msgstr "" +msgstr "Gyártási utasítás" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 @@ -662,11 +661,11 @@ msgstr "" #: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" -msgstr "" +msgstr "Gyártási utasítások" #: build/models.py:200 msgid "Build Order Reference" -msgstr "" +msgstr "Gyártási utasítás azonosító" #: build/models.py:201 order/models.py:213 order/models.py:541 #: order/models.py:812 part/models.py:2714 @@ -676,20 +675,20 @@ msgstr "" #: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" -msgstr "" +msgstr "Azonosító" #: build/models.py:212 msgid "Brief description of the build" -msgstr "" +msgstr "Gyártás rövid leírása" #: build/models.py:221 build/templates/build/build_base.html:169 #: build/templates/build/detail.html:88 msgid "Parent Build" -msgstr "" +msgstr "Szülő gyártás" #: build/models.py:222 msgid "BuildOrder to which this build is allocated" -msgstr "" +msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: build/models.py:227 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 @@ -721,98 +720,98 @@ msgstr "" #: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658 #: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990 msgid "Part" -msgstr "" +msgstr "Alkatrész" #: build/models.py:235 msgid "Select part to build" -msgstr "" +msgstr "Válassz alkatrészt a gyártáshoz" #: build/models.py:240 msgid "Sales Order Reference" -msgstr "" +msgstr "Vevői rendelés azonosító" #: build/models.py:244 msgid "SalesOrder to which this build is allocated" -msgstr "" +msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve" #: build/models.py:249 templates/js/translated/build.js:1643 #: templates/js/translated/order.js:1564 msgid "Source Location" -msgstr "" +msgstr "Forrás hely" #: build/models.py:253 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" -msgstr "" +msgstr "Válassz helyet ahonnan készletet vegyünk el ehhez a gyártáshoz (hagyd üresen ha bárhonnan)" #: build/models.py:258 msgid "Destination Location" -msgstr "" +msgstr "Cél hely" #: build/models.py:262 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "Válassz helyet ahol a kész tételek tárolva lesznek" #: build/models.py:266 msgid "Build Quantity" -msgstr "" +msgstr "Gyártási mennyiség" #: build/models.py:269 msgid "Number of stock items to build" -msgstr "" +msgstr "Gyártandó raktári tételek száma" #: build/models.py:273 msgid "Completed items" -msgstr "" +msgstr "Kész tételek" #: build/models.py:275 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "Elkészült készlet tételek száma" #: build/models.py:279 part/templates/part/part_base.html:234 msgid "Build Status" -msgstr "" +msgstr "Gyártási állapot" #: build/models.py:283 msgid "Build status code" -msgstr "" +msgstr "Gyártás státusz kód" #: build/models.py:287 build/serializers.py:218 stock/models.py:533 msgid "Batch Code" -msgstr "" +msgstr "Batch kód" #: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" -msgstr "" +msgstr "Batch kód a gyártás kimenetéhez" #: build/models.py:294 order/models.py:129 part/models.py:999 #: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271 msgid "Creation Date" -msgstr "" +msgstr "Létrehozás dátuma" #: build/models.py:298 order/models.py:563 msgid "Target completion date" -msgstr "" +msgstr "Befejezés cél dátuma" #: build/models.py:299 msgid "Target date for build completion. Build will be overdue after this date." -msgstr "" +msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." #: build/models.py:302 order/models.py:255 #: templates/js/translated/build.js:1996 msgid "Completion Date" -msgstr "" +msgstr "Elkészítés dátuma" #: build/models.py:308 msgid "completed by" -msgstr "" +msgstr "elkészítette" #: build/models.py:316 templates/js/translated/build.js:1967 msgid "Issued by" -msgstr "" +msgstr "Kiállította" #: build/models.py:317 msgid "User who issued this build order" -msgstr "" +msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" #: build/models.py:325 build/templates/build/build_base.html:190 #: build/templates/build/detail.html:116 order/models.py:143 @@ -821,11 +820,11 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:159 #: templates/js/translated/build.js:1979 templates/js/translated/order.js:864 msgid "Responsible" -msgstr "" +msgstr "Felelős" #: build/models.py:326 msgid "User responsible for this build order" -msgstr "" +msgstr "Felhasználó aki felelős ezért a gyártási utasításért" #: build/models.py:331 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 @@ -833,7 +832,7 @@ msgstr "" #: part/templates/part/part_base.html:354 stock/models.py:527 #: stock/templates/stock/item_base.html:375 msgid "External Link" -msgstr "" +msgstr "Külső link" #: build/models.py:336 build/serializers.py:380 #: build/templates/build/sidebar.html:21 company/models.py:142 @@ -852,58 +851,58 @@ msgstr "" #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 #: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927 msgid "Notes" -msgstr "" +msgstr "Megjegyzések" #: build/models.py:337 msgid "Extra build notes" -msgstr "" +msgstr "Extra gyártási megjegyzések" #: build/models.py:756 msgid "No build output specified" -msgstr "" +msgstr "Nincs gyártási kimenet megadva" #: build/models.py:759 msgid "Build output is already completed" -msgstr "" +msgstr "Gyártási kimenet már kész" #: build/models.py:762 msgid "Build output does not match Build Order" -msgstr "" +msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" #: build/models.py:1154 msgid "Build item must specify a build output, as master part is marked as trackable" -msgstr "" +msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett" #: build/models.py:1163 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" -msgstr "" +msgstr "Lefoglalt mennyiség ({q}) nem lépheti túl a készletet ({a})" #: build/models.py:1173 msgid "Stock item is over-allocated" -msgstr "" +msgstr "Készlet túlfoglalva" #: build/models.py:1179 order/models.py:1189 msgid "Allocation quantity must be greater than zero" -msgstr "" +msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" #: build/models.py:1185 msgid "Quantity must be 1 for serialized stock" -msgstr "" +msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" #: build/models.py:1242 msgid "Selected stock item not found in BOM" -msgstr "" +msgstr "Kiválasztott készlet tétel nem található a BOM-ban" #: build/models.py:1302 stock/templates/stock/item_base.html:347 #: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898 #: templates/navbar.html:35 msgid "Build" -msgstr "" +msgstr "Gyártás" #: build/models.py:1303 msgid "Build to allocate parts" -msgstr "" +msgstr "Gyártás amihez készletet foglaljunk" #: build/models.py:1319 build/serializers.py:570 order/serializers.py:696 #: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635 @@ -918,11 +917,11 @@ msgstr "" #: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729 #: templates/js/translated/stock.js:2752 msgid "Stock Item" -msgstr "" +msgstr "Készlet tétel" #: build/models.py:1320 msgid "Source stock item" -msgstr "" +msgstr "Forrás készlet tétel" #: build/models.py:1332 build/serializers.py:188 #: build/templates/build/build_base.html:82 @@ -959,79 +958,79 @@ msgstr "" #: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759 #: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903 msgid "Quantity" -msgstr "" +msgstr "Mennyiség" #: build/models.py:1333 msgid "Stock quantity to allocate to build" -msgstr "" +msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz" #: build/models.py:1341 msgid "Install into" -msgstr "" +msgstr "Beépítés ebbe" #: build/models.py:1342 msgid "Destination stock item" -msgstr "" +msgstr "Cél készlet tétel" #: build/serializers.py:138 build/serializers.py:599 msgid "Build Output" -msgstr "" +msgstr "Gyártás kimenet" #: build/serializers.py:150 msgid "Build output does not match the parent build" -msgstr "" +msgstr "Gyártási kimenet nem egyezik a szülő gyártással" #: build/serializers.py:154 msgid "Output part does not match BuildOrder part" -msgstr "" +msgstr "Kimeneti alkatrész nem egyezik a gyártási utasítás alkatrésszel" #: build/serializers.py:158 msgid "This build output has already been completed" -msgstr "" +msgstr "Ez a gyártási kimenet már elkészült" #: build/serializers.py:164 msgid "This build output is not fully allocated" -msgstr "" +msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva" #: build/serializers.py:189 msgid "Enter quantity for build output" -msgstr "" +msgstr "Add meg a mennyiséget a gyártás kimenetéhez" #: build/serializers.py:201 build/serializers.py:590 order/models.py:280 #: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826 #: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305 msgid "Quantity must be greater than zero" -msgstr "" +msgstr "Mennyiségnek nullánál többnek kell lennie" #: build/serializers.py:208 msgid "Integer quantity required for trackable parts" -msgstr "" +msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél" #: build/serializers.py:211 msgid "Integer quantity required, as the bill of materials contains trackable parts" -msgstr "" +msgstr "Egész számú mennyiség szükséges, mivel a BOM egyedi követésre kötelezett alkatrészeket tartalmaz" #: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78 #: stock/serializers.py:314 templates/js/translated/stock.js:239 #: templates/js/translated/stock.js:393 msgid "Serial Numbers" -msgstr "" +msgstr "Sorozatszámok" #: build/serializers.py:226 msgid "Enter serial numbers for build outputs" -msgstr "" +msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez" #: build/serializers.py:239 msgid "Auto Allocate Serial Numbers" -msgstr "" +msgstr "Sorozatszámok automatikus hozzárendelése" #: build/serializers.py:240 msgid "Automatically allocate required items with matching serial numbers" -msgstr "" +msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal" #: build/serializers.py:274 stock/api.py:549 msgid "The following serial numbers already exist" -msgstr "" +msgstr "A következő sorozatszámok már léteznek" #: build/serializers.py:327 build/serializers.py:392 msgid "A list of build outputs must be provided" @@ -1049,7 +1048,7 @@ msgstr "" #: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937 #: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693 msgid "Location" -msgstr "" +msgstr "Hely" #: build/serializers.py:370 msgid "Location for completed build outputs" @@ -1063,7 +1062,7 @@ msgstr "" #: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783 #: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919 msgid "Status" -msgstr "" +msgstr "Állapot" #: build/serializers.py:428 msgid "Accept Unallocated" @@ -1100,11 +1099,11 @@ msgstr "" #: build/serializers.py:495 build/serializers.py:544 part/models.py:2829 #: part/models.py:2988 msgid "BOM Item" -msgstr "" +msgstr "BOM tétel" #: build/serializers.py:505 msgid "Build output" -msgstr "" +msgstr "Gyártás kimenet" #: build/serializers.py:514 msgid "Build output must point to the same build" @@ -1116,78 +1115,78 @@ msgstr "" #: build/serializers.py:576 stock/serializers.py:642 msgid "Item must be in stock" -msgstr "" +msgstr "A tételnek kell legyen készlete" #: build/serializers.py:632 order/serializers.py:747 #, python-brace-format msgid "Available quantity ({q}) exceeded" -msgstr "" +msgstr "Rendelkezésre álló mennyiség ({q}) túllépve" #: build/serializers.py:638 msgid "Build output must be specified for allocation of tracked parts" -msgstr "" +msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrészek lefoglalásához" #: build/serializers.py:645 msgid "Build output cannot be specified for allocation of untracked parts" -msgstr "" +msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatrészek lefoglalásához" #: build/serializers.py:673 order/serializers.py:990 msgid "Allocation items must be provided" -msgstr "" +msgstr "A lefoglalandó tételeket meg kell adni" #: build/tasks.py:98 msgid "Stock required for build order" -msgstr "" +msgstr "A gyártási utasításhoz készlet szükséges" #: build/templates/build/build_base.html:39 #: order/templates/order/order_base.html:28 #: order/templates/order/sales_order_base.html:38 msgid "Print actions" -msgstr "" +msgstr "Nyomtatási műveletek" #: build/templates/build/build_base.html:43 msgid "Print build order report" -msgstr "" +msgstr "Gyártási riport nyomtatása" #: build/templates/build/build_base.html:50 msgid "Build actions" -msgstr "" +msgstr "Gyártási műveletek" #: build/templates/build/build_base.html:54 msgid "Edit Build" -msgstr "" +msgstr "Gyártás szerkesztése" #: build/templates/build/build_base.html:56 #: build/templates/build/build_base.html:220 build/views.py:53 msgid "Cancel Build" -msgstr "" +msgstr "Gyártás megszakítása" #: build/templates/build/build_base.html:59 msgid "Delete Build" -msgstr "" +msgstr "Gyártás törlése" #: build/templates/build/build_base.html:64 #: build/templates/build/build_base.html:65 msgid "Complete Build" -msgstr "" +msgstr "Gyártás befejezése" #: build/templates/build/build_base.html:87 msgid "Build Description" -msgstr "" +msgstr "Gyártás leírása" #: build/templates/build/build_base.html:101 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "" +msgstr "Ez a gyártási utasítás hozzátendelve a %(link)s vevői rendeléshez" #: build/templates/build/build_base.html:108 #, python-format msgid "This Build Order is a child of Build Order %(link)s" -msgstr "" +msgstr "Ez gyártási utasítás a %(link)s gyártási utasítás gyermeke" #: build/templates/build/build_base.html:115 msgid "Build Order is ready to mark as completed" -msgstr "" +msgstr "Gyártási utasítás elkészültnek jelölhető" #: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" @@ -1209,7 +1208,7 @@ msgstr "" #: templates/js/translated/build.js:1991 templates/js/translated/order.js:854 #: templates/js/translated/order.js:1276 msgid "Target Date" -msgstr "" +msgstr "Cél dátum" #: build/templates/build/build_base.html:156 #, python-format @@ -1224,7 +1223,7 @@ msgstr "" #: templates/js/translated/table_filters.js:335 #: templates/js/translated/table_filters.js:356 msgid "Overdue" -msgstr "" +msgstr "Megkésett" #: build/templates/build/build_base.html:163 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143 @@ -1232,7 +1231,7 @@ msgstr "" #: templates/js/translated/build.js:1940 #: templates/js/translated/table_filters.js:365 msgid "Completed" -msgstr "" +msgstr "Kész" #: build/templates/build/build_base.html:176 #: build/templates/build/detail.html:95 order/models.py:947 @@ -1243,50 +1242,50 @@ msgstr "" #: stock/templates/stock/item_base.html:309 #: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428 msgid "Sales Order" -msgstr "" +msgstr "Vevői rendelés" #: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:109 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" -msgstr "" +msgstr "Kiállította" #: build/templates/build/build_base.html:228 msgid "Incomplete Outputs" -msgstr "" +msgstr "Befejezetlen kimenetek" #: build/templates/build/build_base.html:229 msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" +msgstr "Gyártási utasítás nem teljesíthető mivel befejezetlen kimenetek maradnak" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "Biztosan meg szeretnéd szakítani ezt a gyártást?" #: build/templates/build/detail.html:16 msgid "Build Details" -msgstr "" +msgstr "Gyártás részletei" #: build/templates/build/detail.html:39 msgid "Stock Source" -msgstr "" +msgstr "Készlet forrás" #: build/templates/build/detail.html:44 msgid "Stock can be taken from any available location." -msgstr "" +msgstr "Készlet bármely rendelkezésre álló helyről felhasználható." #: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" -msgstr "" +msgstr "Cél" #: build/templates/build/detail.html:57 msgid "Destination location not specified" -msgstr "" +msgstr "A cél hely nincs megadva" #: build/templates/build/detail.html:74 templates/js/translated/build.js:929 msgid "Allocated Parts" -msgstr "" +msgstr "Lefoglalt alkatrészek" #: build/templates/build/detail.html:81 #: stock/templates/stock/item_base.html:333 @@ -1294,109 +1293,109 @@ msgstr "" #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" -msgstr "" +msgstr "Batch" #: build/templates/build/detail.html:127 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 #: templates/js/translated/build.js:1962 msgid "Created" -msgstr "" +msgstr "Létrehozva" #: build/templates/build/detail.html:138 msgid "No target date set" -msgstr "" +msgstr "Nincs céldátum beállítva" #: build/templates/build/detail.html:147 msgid "Build not complete" -msgstr "" +msgstr "Gyártás nincs kész" #: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 msgid "Child Build Orders" -msgstr "" +msgstr "Alárendelt gyártások" #: build/templates/build/detail.html:173 msgid "Allocate Stock to Build" -msgstr "" +msgstr "Készlet foglalása gyártáshoz" #: build/templates/build/detail.html:177 templates/js/translated/build.js:1484 msgid "Unallocate stock" -msgstr "" +msgstr "Készlet felszabadítása" #: build/templates/build/detail.html:178 msgid "Unallocate Stock" -msgstr "" +msgstr "Készlet felszabadítása" #: build/templates/build/detail.html:180 msgid "Allocate stock to build" -msgstr "" +msgstr "Készlet foglalása gyártáshoz" #: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8 msgid "Allocate Stock" -msgstr "" +msgstr "Készlet foglalása" #: build/templates/build/detail.html:184 msgid "Order required parts" -msgstr "" +msgstr "Szükséges alkatrészek rendelése" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 #: part/templates/part/category.html:177 msgid "Order Parts" -msgstr "" +msgstr "Alkatrész rendelés" #: build/templates/build/detail.html:197 msgid "Untracked stock has been fully allocated for this Build Order" -msgstr "" +msgstr "Nem követett készlet teljesen lefoglalva ehhez a gyártási utasításhoz" #: build/templates/build/detail.html:201 msgid "Untracked stock has not been fully allocated for this Build Order" -msgstr "" +msgstr "Nem követett készlet nincs teljesen lefoglalva ehhez a gyártási utasításhoz" #: build/templates/build/detail.html:208 msgid "Allocate selected items" -msgstr "" +msgstr "Kiválasztott tételek lefoglalása" #: build/templates/build/detail.html:218 msgid "This Build Order does not have any associated untracked BOM items" -msgstr "" +msgstr "Ez a gyártási utasítás egyáltalán nem tartalmaz nem követett BOM tételt" #: build/templates/build/detail.html:227 msgid "Incomplete Build Outputs" -msgstr "" +msgstr "Befejezetlen gyártási kimenetek" #: build/templates/build/detail.html:231 msgid "Create new build output" -msgstr "" +msgstr "Új gyártási kimenet létrehozása" #: build/templates/build/detail.html:232 msgid "New Build Output" -msgstr "" +msgstr "Új gyártási kimenet" #: build/templates/build/detail.html:246 msgid "Output Actions" -msgstr "" +msgstr "Kimeneti műveletek" #: build/templates/build/detail.html:250 msgid "Complete selected build outputs" -msgstr "" +msgstr "Kiválasztott gyártási kimenetek befejezése" #: build/templates/build/detail.html:251 msgid "Complete outputs" -msgstr "" +msgstr "Befejezett kimenetek" #: build/templates/build/detail.html:253 msgid "Delete selected build outputs" -msgstr "" +msgstr "Kiválasztott gyártási kimenetek törlése" #: build/templates/build/detail.html:254 msgid "Delete outputs" -msgstr "" +msgstr "Kimenetek törlése" #: build/templates/build/detail.html:270 msgid "Completed Build Outputs" -msgstr "" +msgstr "Befejezett gyártási kimenetek" #: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 @@ -1406,11 +1405,11 @@ msgstr "" #: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" -msgstr "" +msgstr "Mellékletek" #: build/templates/build/detail.html:298 msgid "Build Notes" -msgstr "" +msgstr "Gyártási megjegyzések" #: build/templates/build/detail.html:302 build/templates/build/detail.html:478 #: company/templates/company/detail.html:188 @@ -1422,83 +1421,83 @@ msgstr "" #: part/templates/part/detail.html:144 stock/templates/stock/item.html:132 #: stock/templates/stock/item.html:230 msgid "Edit Notes" -msgstr "" +msgstr "Megjegyzések szerkesztése" #: build/templates/build/detail.html:502 msgid "Allocation Complete" -msgstr "" +msgstr "Lefoglalás kész" #: build/templates/build/detail.html:503 msgid "All untracked stock items have been allocated" -msgstr "" +msgstr "Az összes nem követett készlet lefoglalásra került" #: build/templates/build/index.html:18 part/templates/part/detail.html:323 msgid "New Build Order" -msgstr "" +msgstr "Új gyártási utasítás" #: build/templates/build/index.html:37 build/templates/build/index.html:38 msgid "Print Build Orders" -msgstr "" +msgstr "Gyártási utasítások nyomtatása" #: build/templates/build/index.html:44 #: order/templates/order/purchase_orders.html:34 #: order/templates/order/sales_orders.html:37 msgid "Display calendar view" -msgstr "" +msgstr "Naptár nézet megjelenítése" #: build/templates/build/index.html:47 #: order/templates/order/purchase_orders.html:37 #: order/templates/order/sales_orders.html:40 msgid "Display list view" -msgstr "" +msgstr "Lista nézet megjenítése" #: build/templates/build/sidebar.html:5 msgid "Build Order Details" -msgstr "" +msgstr "Gyártási utasítás részletei" #: build/templates/build/sidebar.html:12 msgid "Pending Items" -msgstr "" +msgstr "Függőben lévő tételek" #: build/templates/build/sidebar.html:15 msgid "Completed Items" -msgstr "" +msgstr "Kész tételek" #: build/views.py:73 msgid "Build was cancelled" -msgstr "" +msgstr "Gyártás megszakítva" #: build/views.py:114 msgid "Delete Build Order" -msgstr "" +msgstr "Gyártási utasítás törlése" #: common/files.py:65 msgid "Unsupported file format: {ext.upper()}" -msgstr "" +msgstr "Nem támogatott fájl formátum: {ext.upper()}" #: common/files.py:67 msgid "Error reading file (invalid encoding)" -msgstr "" +msgstr "Fájl beolvasási hiba (hibás encoding)" #: common/files.py:72 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "Fájl beolvasási hiba (hibás formátum)" #: common/files.py:74 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "Fájl beolvasási hiba (hibás dimenzió)" #: common/files.py:76 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "Fájl beolvasási hiba (sérült lehet)" #: common/forms.py:34 msgid "File" -msgstr "" +msgstr "Fájl" #: common/forms.py:35 msgid "Select file to upload" -msgstr "" +msgstr "Feltöltendő fájl kiválasztása" #: common/forms.py:50 msgid "{name.title()} File" @@ -1507,59 +1506,59 @@ msgstr "" #: common/forms.py:51 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "{name} fájl kiválasztása feltöltéshez" #: common/models.py:352 msgid "Settings key (must be unique - case insensitive)" -msgstr "" +msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny)" #: common/models.py:354 msgid "Settings value" -msgstr "" +msgstr "Beállítás értéke" #: common/models.py:388 msgid "Chosen value is not a valid option" -msgstr "" +msgstr "A kiválasztott érték nem egy érvényes lehetőség" #: common/models.py:408 msgid "Value must be a boolean value" -msgstr "" +msgstr "Az érték bináris kell legyen" #: common/models.py:419 msgid "Value must be an integer value" -msgstr "" +msgstr "Az érték egész szám kell legyen" #: common/models.py:442 msgid "Key string must be unique" -msgstr "" +msgstr "Kulcs string egyedi kell legyen" #: common/models.py:561 msgid "No group" -msgstr "" +msgstr "Nincs csoport" #: common/models.py:603 msgid "Restart required" -msgstr "" +msgstr "Újraindítás szükséges" #: common/models.py:604 msgid "A setting has been changed which requires a server restart" -msgstr "" +msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli" #: common/models.py:611 msgid "InvenTree Instance Name" -msgstr "" +msgstr "InvenTree példány neve" #: common/models.py:613 msgid "String descriptor for the server instance" -msgstr "" +msgstr "String leíró a kiszolgáló példányhoz" #: common/models.py:617 msgid "Use instance name" -msgstr "" +msgstr "Példány név használata" #: common/models.py:618 msgid "Use the instance name in the title-bar" -msgstr "" +msgstr "Példány név használata a címsorban" #: common/models.py:624 company/models.py:100 company/models.py:101 msgid "Company name" @@ -1575,7 +1574,7 @@ msgstr "" #: common/models.py:631 msgid "Base URL for server instance" -msgstr "" +msgstr "Alap URL a kiszolgáló példányhoz" #: common/models.py:637 msgid "Default Currency" @@ -1595,11 +1594,11 @@ msgstr "" #: common/models.py:651 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" -msgstr "" +msgstr "Vonalkód támogatás" #: common/models.py:652 msgid "Enable barcode scanner support" -msgstr "" +msgstr "Vonalkód olvasó engedélyezése" #: common/models.py:658 msgid "IPN Regex" @@ -1615,7 +1614,7 @@ msgstr "" #: common/models.py:664 msgid "Allow multiple parts to share the same IPN" -msgstr "" +msgstr "Azonos IPN használható legyen több alkatrész esetén is" #: common/models.py:670 msgid "Allow Editing IPN" @@ -1657,7 +1656,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:705 part/models.py:2525 report/models.py:183 +#: common/models.py:705 part/models.py:2525 report/models.py:187 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:417 msgid "Template" @@ -1665,17 +1664,17 @@ msgstr "" #: common/models.py:706 msgid "Parts are templates by default" -msgstr "" +msgstr "Alkatrészek alapból sablon alkatrészek legyenek" #: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:429 msgid "Assembly" -msgstr "" +msgstr "Szerelvény" #: common/models.py:713 msgid "Parts can be assembled from other components by default" -msgstr "" +msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" #: common/models.py:719 part/models.py:957 #: templates/js/translated/table_filters.js:433 @@ -1684,7 +1683,7 @@ msgstr "" #: common/models.py:720 msgid "Parts can be used as sub-components by default" -msgstr "" +msgstr "Alaktrészek alapból használhatók összetevőként más alkatrészekhez" #: common/models.py:726 part/models.py:968 msgid "Purchaseable" @@ -1692,7 +1691,7 @@ msgstr "" #: common/models.py:727 msgid "Parts are purchaseable by default" -msgstr "" +msgstr "Alkatrészek alapból beszerezhetők legyenek" #: common/models.py:733 part/models.py:973 #: templates/js/translated/table_filters.js:441 @@ -1701,7 +1700,7 @@ msgstr "" #: common/models.py:734 msgid "Parts are salable by default" -msgstr "" +msgstr "Alkatrészek alapból eladhatók legyenek" #: common/models.py:740 part/models.py:963 #: templates/js/translated/table_filters.js:46 @@ -1712,17 +1711,17 @@ msgstr "" #: common/models.py:741 msgid "Parts are trackable by default" -msgstr "" +msgstr "Alkatrészek alapból követésre kötelezettek legyenek" #: common/models.py:747 part/models.py:983 #: part/templates/part/part_base.html:147 #: templates/js/translated/table_filters.js:42 msgid "Virtual" -msgstr "" +msgstr "Virtuális" #: common/models.py:748 msgid "Parts are virtual by default" -msgstr "" +msgstr "Alkatrészek alapból virtuálisak legyenek" #: common/models.py:754 msgid "Show Import in Views" @@ -1758,11 +1757,11 @@ msgstr "" #: common/models.py:792 msgid "Show related parts" -msgstr "" +msgstr "Kapcsolódó alkatrészek megjelenítése" #: common/models.py:793 msgid "Display related parts for a part" -msgstr "" +msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése" #: common/models.py:799 msgid "Create initial stock" @@ -1778,7 +1777,7 @@ msgstr "" #: common/models.py:807 msgid "Enable internal prices for parts" -msgstr "" +msgstr "Alkatrészekhez belső ár engedélyezése" #: common/models.py:813 msgid "Internal Price as BOM-Price" @@ -2018,31 +2017,31 @@ msgstr "" #: common/models.py:1020 common/models.py:1228 msgid "Settings key (must be unique - case insensitive" -msgstr "" +msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" #: common/models.py:1051 msgid "Show subscribed parts" -msgstr "" +msgstr "Értesítésre beállított alkatrészek megjelenítése" #: common/models.py:1052 msgid "Show subscribed parts on the homepage" -msgstr "" +msgstr "Alkatrész értesítések megjelenítése a főoldalon" #: common/models.py:1057 msgid "Show subscribed categories" -msgstr "" +msgstr "Értesítésre beállított kategóriák megjelenítése" #: common/models.py:1058 msgid "Show subscribed part categories on the homepage" -msgstr "" +msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" #: common/models.py:1063 msgid "Show latest parts" -msgstr "" +msgstr "Legújabb alkatrészek megjelenítése" #: common/models.py:1064 msgid "Show latest parts on the homepage" -msgstr "" +msgstr "Legújabb alkatrészek megjelenítése a főoldalon" #: common/models.py:1069 msgid "Recent Part Count" @@ -2050,7 +2049,7 @@ msgstr "" #: common/models.py:1070 msgid "Number of recent parts to display on index page" -msgstr "" +msgstr "Főoldalon megjelenítendő legújabb alkatrészek" #: common/models.py:1076 msgid "Show unvalidated BOMs" @@ -2058,7 +2057,7 @@ msgstr "" #: common/models.py:1077 msgid "Show BOMs that await validation on the homepage" -msgstr "" +msgstr "Érvényesítésre váró BOM-ok megjelenítése a főoldalon" #: common/models.py:1082 msgid "Show recent stock changes" @@ -2066,7 +2065,7 @@ msgstr "" #: common/models.py:1083 msgid "Show recently changed stock items on the homepage" -msgstr "" +msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" #: common/models.py:1088 msgid "Recent Stock Count" @@ -2082,15 +2081,15 @@ msgstr "" #: common/models.py:1095 msgid "Show low stock items on the homepage" -msgstr "" +msgstr "Alacsony készletek megjelenítése a főoldalon" #: common/models.py:1100 msgid "Show depleted stock" -msgstr "" +msgstr "Kimerült készlet megjelenítése" #: common/models.py:1101 msgid "Show depleted stock items on the homepage" -msgstr "" +msgstr "Kimerült készletek megjelenítése a főoldalon" #: common/models.py:1106 msgid "Show needed stock" @@ -2098,7 +2097,7 @@ msgstr "" #: common/models.py:1107 msgid "Show stock items needed for builds on the homepage" -msgstr "" +msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" #: common/models.py:1112 msgid "Show expired stock" @@ -2106,7 +2105,7 @@ msgstr "" #: common/models.py:1113 msgid "Show expired stock items on the homepage" -msgstr "" +msgstr "Lejárt készletek megjelenítése a főoldalon" #: common/models.py:1118 msgid "Show stale stock" @@ -2114,7 +2113,7 @@ msgstr "" #: common/models.py:1119 msgid "Show stale stock items on the homepage" -msgstr "" +msgstr "Álló készletek megjelenítése a főoldalon" #: common/models.py:1124 msgid "Show pending builds" @@ -2122,15 +2121,15 @@ msgstr "" #: common/models.py:1125 msgid "Show pending builds on the homepage" -msgstr "" +msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" #: common/models.py:1130 msgid "Show overdue builds" -msgstr "" +msgstr "Megkésett gyártások megjelenítése" #: common/models.py:1131 msgid "Show overdue builds on the homepage" -msgstr "" +msgstr "Megkésett gyártások megjelenítése a főoldalon" #: common/models.py:1136 msgid "Show outstanding POs" @@ -2138,15 +2137,15 @@ msgstr "" #: common/models.py:1137 msgid "Show outstanding POs on the homepage" -msgstr "" +msgstr "Kintlévő megrendelések megjelenítése a főoldalon" #: common/models.py:1142 msgid "Show overdue POs" -msgstr "" +msgstr "Megkésett megrendelések megjelenítése" #: common/models.py:1143 msgid "Show overdue POs on the homepage" -msgstr "" +msgstr "Megkésett megrendelések megjelenítése a főoldalon" #: common/models.py:1148 msgid "Show outstanding SOs" @@ -2154,15 +2153,15 @@ msgstr "" #: common/models.py:1149 msgid "Show outstanding SOs on the homepage" -msgstr "" +msgstr "Kintlévő vevői rendelések megjelenítése a főoldalon" #: common/models.py:1154 msgid "Show overdue SOs" -msgstr "" +msgstr "Megkésett vevői rendelések megjelenítése" #: common/models.py:1155 msgid "Show overdue SOs on the homepage" -msgstr "" +msgstr "Megkésett vevői rendelések megjelenítése a főoldalon" #: common/models.py:1161 msgid "Inline label display" @@ -2170,7 +2169,7 @@ msgstr "" #: common/models.py:1162 msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" +msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" #: common/models.py:1168 msgid "Inline report display" @@ -2178,7 +2177,7 @@ msgstr "" #: common/models.py:1169 msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" +msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" #: common/models.py:1175 msgid "Search Preview Results" @@ -2198,11 +2197,11 @@ msgstr "" #: common/models.py:1189 msgid "Hide Inactive Parts" -msgstr "" +msgstr "Inaktív alkatrészek elrejtése" #: common/models.py:1190 msgid "Hide inactive parts in search preview window" -msgstr "" +msgstr "Inaktív alkatrészek elrejtése a kereső előnézeti ablakban" #: common/models.py:1196 msgid "Show Quantity in Forms" @@ -2326,15 +2325,17 @@ msgstr "" msgid "Was the work on this message finished?" msgstr "" -#: common/views.py:93 order/templates/order/purchase_order_detail.html:24 -#: order/views.py:243 part/views.py:210 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210 #: templates/patterns/wizard/upload.html:35 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/views.py:211 templates/patterns/wizard/match_fields.html:51 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211 +#: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2348,10 +2349,13 @@ msgstr "" #: common/views.py:495 msgid "Parts imported" -msgstr "" +msgstr "Importált alkatrészek" #: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 +#: order/templates/order/order_wizard/po_upload.html:47 +#: part/templates/part/import_wizard/match_fields.html:27 #: part/templates/part/import_wizard/match_references.html:19 +#: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 #: templates/patterns/wizard/upload.html:33 msgid "Previous Step" @@ -2360,7 +2364,7 @@ msgstr "" #: company/forms.py:24 part/forms.py:46 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" -msgstr "" +msgstr "URL" #: company/forms.py:25 part/forms.py:47 msgid "Image URL" @@ -2378,7 +2382,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:55 #: templates/js/translated/company.js:349 msgid "Website" -msgstr "" +msgstr "Weboldal" #: company/models.py:113 msgid "Company website URL" @@ -2403,7 +2407,7 @@ msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 #: templates/InvenTree/settings/user.html:48 msgid "Email" -msgstr "" +msgstr "Email" #: company/models.py:125 msgid "Contact email address" @@ -2447,7 +2451,7 @@ msgstr "" #: company/models.py:148 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "Gyárt ez a cég alkatrészeket?" #: company/models.py:152 company/serializers.py:270 #: company/templates/company/company_base.html:103 stock/serializers.py:179 @@ -2461,7 +2465,7 @@ msgstr "" #: company/models.py:320 company/models.py:535 stock/models.py:471 #: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541 msgid "Base Part" -msgstr "" +msgstr "Alap alkatrész" #: company/models.py:324 company/models.py:539 msgid "Select part" @@ -2476,7 +2480,7 @@ msgstr "" #: templates/js/translated/company.js:800 templates/js/translated/part.js:234 #: templates/js/translated/table_filters.js:384 msgid "Manufacturer" -msgstr "" +msgstr "Gyártó" #: company/models.py:336 templates/js/translated/part.js:235 msgid "Select manufacturer" @@ -2507,7 +2511,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:392 msgid "Manufacturer Part" -msgstr "" +msgstr "Gyártói alkatrész" #: company/models.py:416 msgid "Parameter name" @@ -2518,7 +2522,7 @@ msgstr "" #: stock/models.py:1988 templates/js/translated/company.js:647 #: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332 msgid "Value" -msgstr "" +msgstr "Érték" #: company/models.py:423 msgid "Parameter value" @@ -2529,7 +2533,7 @@ msgstr "" #: templates/InvenTree/settings/settings.html:324 #: templates/js/translated/company.js:653 templates/js/translated/part.js:721 msgid "Units" -msgstr "" +msgstr "Mértékegységek" #: company/models.py:430 msgid "Parameter units" @@ -2549,7 +2553,7 @@ msgstr "" #: templates/js/translated/part.js:215 templates/js/translated/part.js:863 #: templates/js/translated/table_filters.js:388 msgid "Supplier" -msgstr "" +msgstr "Beszállító" #: company/models.py:546 templates/js/translated/part.js:216 msgid "Select supplier" @@ -2586,7 +2590,7 @@ msgstr "" #: company/models.py:580 part/models.py:1817 msgid "base cost" -msgstr "" +msgstr "alap költség" #: company/models.py:580 part/models.py:1817 msgid "Minimum charge (e.g. stocking fee)" @@ -2596,7 +2600,7 @@ msgstr "" #: stock/models.py:495 stock/templates/stock/item_base.html:340 #: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923 msgid "Packaging" -msgstr "" +msgstr "Csomagolás" #: company/models.py:582 msgid "Part packaging" @@ -2654,12 +2658,12 @@ msgstr "" #: company/templates/company/company_base.html:53 #: part/templates/part/part_thumb.html:12 msgid "Upload new image" -msgstr "" +msgstr "Új kép feltöltése" #: company/templates/company/company_base.html:56 #: part/templates/part/part_thumb.html:14 msgid "Download image from URL" -msgstr "" +msgstr "Kép letöltése URL-ről" #: company/templates/company/company_base.html:83 order/models.py:552 #: order/templates/order/sales_order_base.html:115 stock/models.py:514 @@ -2669,7 +2673,7 @@ msgstr "" #: templates/js/translated/stock.js:2734 #: templates/js/translated/table_filters.js:392 msgid "Customer" -msgstr "" +msgstr "Vevő" #: company/templates/company/company_base.html:108 msgid "Uses default currency" @@ -2682,13 +2686,13 @@ msgstr "" #: company/templates/company/company_base.html:205 #: part/templates/part/part_base.html:471 msgid "Upload Image" -msgstr "" +msgstr "Kép feltöltése" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" -msgstr "" +msgstr "Beszállítói alkatrészek" #: company/templates/company/detail.html:19 #: order/templates/order/order_wizard/select_parts.html:44 @@ -2714,21 +2718,21 @@ msgstr "" #: company/templates/company/detail.html:84 #: part/templates/part/category.html:177 msgid "Order parts" -msgstr "" +msgstr "Alkatrész rendelés" #: company/templates/company/detail.html:42 #: company/templates/company/detail.html:89 msgid "Delete parts" -msgstr "" +msgstr "Alkatrész törlés" #: company/templates/company/detail.html:43 #: company/templates/company/detail.html:90 msgid "Delete Parts" -msgstr "" +msgstr "Alkatrész törlés" #: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" -msgstr "" +msgstr "Gyártói alkatrészek" #: company/templates/company/detail.html:66 msgid "Create new manufacturer part" @@ -2753,7 +2757,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" -msgstr "" +msgstr "Beszerzési rendelések" #: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:17 @@ -2775,7 +2779,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" -msgstr "" +msgstr "Vevői rendelések" #: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:20 @@ -2800,13 +2804,13 @@ msgstr "" #: company/templates/company/manufacturer_part.html:215 #: part/templates/part/detail.html:438 msgid "Delete Supplier Parts?" -msgstr "" +msgstr "Töröljük a beszállítói alkatrészeket?" #: company/templates/company/detail.html:385 #: company/templates/company/manufacturer_part.html:216 #: part/templates/part/detail.html:439 msgid "All selected supplier parts will be deleted" -msgstr "" +msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz" #: company/templates/company/index.html:8 msgid "Supplier List" @@ -2823,7 +2827,7 @@ msgstr "" #: company/templates/company/supplier_part.html:159 #: part/templates/part/detail.html:88 part/templates/part/part_base.html:76 msgid "Order part" -msgstr "" +msgstr "Alkatrész rendelés" #: company/templates/company/manufacturer_part.html:40 #: templates/js/translated/company.js:565 @@ -2850,7 +2854,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:129 #: part/templates/part/detail.html:367 msgid "Delete supplier parts" -msgstr "" +msgstr "Beszállítói alkatrész törlése" #: company/templates/company/manufacturer_part.html:129 #: company/templates/company/manufacturer_part.html:158 @@ -2866,14 +2870,14 @@ msgstr "" #: part/templates/part/category_sidebar.html:17 #: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9 msgid "Parameters" -msgstr "" +msgstr "Paraméterek" #: company/templates/company/manufacturer_part.html:147 #: part/templates/part/detail.html:195 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" -msgstr "" +msgstr "Új paraméter" #: company/templates/company/manufacturer_part.html:158 msgid "Delete parameters" @@ -2890,15 +2894,15 @@ msgstr "" #: company/templates/company/manufacturer_part.html:251 msgid "Delete Parameters" -msgstr "" +msgstr "Paraméterek törlése" #: company/templates/company/sidebar.html:6 msgid "Manufactured Parts" -msgstr "" +msgstr "Gyártott alkatrészek" #: company/templates/company/sidebar.html:10 msgid "Supplied Parts" -msgstr "" +msgstr "Szállított alkatrészek" #: company/templates/company/sidebar.html:16 msgid "Supplied Stock Items" @@ -2913,7 +2917,7 @@ msgstr "" #: stock/templates/stock/item_base.html:404 #: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880 msgid "Supplier Part" -msgstr "" +msgstr "Beszállítói alkatrész" #: company/templates/company/supplier_part.html:38 #: templates/js/translated/company.js:863 @@ -2993,7 +2997,7 @@ msgstr "" #: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936 #: templates/js/translated/stock.js:1712 templates/navbar.html:28 msgid "Stock" -msgstr "" +msgstr "Készlet" #: company/templates/company/supplier_part_navbar.html:22 msgid "Orders" @@ -3017,7 +3021,7 @@ msgstr "" #: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633 #: templates/stats.html:105 templates/stats.html:114 users/models.py:43 msgid "Stock Items" -msgstr "" +msgstr "Készlet tételek" #: company/views.py:50 msgid "New Supplier" @@ -3030,11 +3034,11 @@ msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" -msgstr "" +msgstr "Vevők" #: company/views.py:62 msgid "New Customer" -msgstr "" +msgstr "Új vevő" #: company/views.py:69 msgid "Companies" @@ -3081,7 +3085,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:134 report/models.py:294 +#: label/models.py:134 report/models.py:298 msgid "Enabled" msgstr "" @@ -3105,7 +3109,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:154 report/models.py:287 +#: label/models.py:154 report/models.py:291 msgid "Filename Pattern" msgstr "" @@ -3115,20 +3119,20 @@ msgstr "" #: label/models.py:258 msgid "Query filters (comma-separated list of key=value pairs)," -msgstr "" +msgstr "Lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)," #: label/models.py:259 label/models.py:319 label/models.py:366 -#: report/models.py:318 report/models.py:455 report/models.py:493 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" -msgstr "" +msgstr "Szűrők" #: label/models.py:318 msgid "Query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok" #: label/models.py:365 msgid "Part query filters (comma-separated value of key=value pairs)" -msgstr "" +msgstr "Alkatrész lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)" #: order/forms.py:24 order/templates/order/order_base.html:52 msgid "Place order" @@ -3190,15 +3194,15 @@ msgstr "" #: order/models.py:243 msgid "Issue Date" -msgstr "" +msgstr "Kiállítás dátuma" #: order/models.py:244 msgid "Date order was issued" -msgstr "" +msgstr "Kiállítás dátuma" #: order/models.py:249 msgid "Target Delivery Date" -msgstr "" +msgstr "Cél kézbesítési dátum" #: order/models.py:250 msgid "Expected date for order delivery. Order will be overdue after this date." @@ -3206,7 +3210,7 @@ msgstr "" #: order/models.py:256 msgid "Date order was completed" -msgstr "" +msgstr "Rendelés teljesítési dátuma" #: order/models.py:285 msgid "Part supplier must match PO supplier" @@ -3222,11 +3226,11 @@ msgstr "" #: order/models.py:559 msgid "Customer Reference " -msgstr "" +msgstr "Vevő azonosító " #: order/models.py:559 msgid "Customer order reference code" -msgstr "" +msgstr "Vevő megrendelés azonosító kód" #: order/models.py:564 msgid "Target date for order completion. Order will be overdue after this date." @@ -3235,7 +3239,7 @@ msgstr "" #: order/models.py:567 order/models.py:1048 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" -msgstr "" +msgstr "Kiszállítás dátuma" #: order/models.py:574 msgid "shipped by" @@ -3243,7 +3247,7 @@ msgstr "" #: order/models.py:640 msgid "Order cannot be completed as no parts have been assigned" -msgstr "" +msgstr "A rendelés nem teljesíthető mivel nincs hozzárendelve alkatrész" #: order/models.py:644 msgid "Only a pending order can be marked as complete" @@ -3285,7 +3289,7 @@ msgstr "" #: templates/js/translated/order.js:801 templates/js/translated/part.js:838 #: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715 msgid "Purchase Order" -msgstr "" +msgstr "Beszerzési rendelés" #: order/models.py:877 msgid "Supplier part" @@ -3296,7 +3300,7 @@ msgstr "" #: templates/js/translated/part.js:910 templates/js/translated/part.js:937 #: templates/js/translated/table_filters.js:312 msgid "Received" -msgstr "" +msgstr "Beérkezett" #: order/models.py:885 msgid "Number of items received" @@ -3306,7 +3310,7 @@ msgstr "" #: stock/serializers.py:170 stock/templates/stock/item_base.html:361 #: templates/js/translated/stock.js:1911 msgid "Purchase Price" -msgstr "" +msgstr "Beszerzési ár" #: order/models.py:893 msgid "Unit purchase price" @@ -3331,7 +3335,7 @@ msgstr "" #: order/models.py:1049 msgid "Date of shipment" -msgstr "" +msgstr "Szállítás dátuma" #: order/models.py:1056 msgid "Checked By" @@ -3379,7 +3383,7 @@ msgstr "" #: order/models.py:1182 msgid "Allocation quantity cannot exceed stock quantity" -msgstr "" +msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét" #: order/models.py:1186 msgid "StockItem is over-allocated" @@ -3420,7 +3424,7 @@ msgstr "" #: order/models.py:1229 msgid "Enter stock allocation quantity" -msgstr "" +msgstr "Készlet foglalási mennyiség megadása" #: order/serializers.py:173 msgid "Purchase price currency" @@ -3460,7 +3464,7 @@ msgstr "" #: order/serializers.py:335 msgid "Supplied barcode values must be unique" -msgstr "" +msgstr "Megadott vonalkódoknak egyedieknek kel lenniük" #: order/serializers.py:587 msgid "Sale price currency" @@ -3599,6 +3603,7 @@ msgid "Errors exist in the submitted data" msgstr "" #: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 #: part/templates/part/import_wizard/match_references.html:21 #: templates/patterns/wizard/match_fields.html:28 msgid "Submit Selections" @@ -3617,6 +3622,7 @@ msgstr "" #: order/templates/order/order_wizard/match_parts.html:52 #: part/templates/part/import_wizard/ajax_match_fields.html:64 #: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:380 #: templates/js/translated/build.js:528 templates/js/translated/build.js:1547 @@ -3630,11 +3636,19 @@ msgstr "" msgid "Return to Orders" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:13 +#: order/templates/order/order_wizard/po_upload.html:17 msgid "Upload File for Purchase Order" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:15 +#: order/templates/order/order_wizard/po_upload.html:25 +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:11 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3648,7 +3662,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" -msgstr "" +msgstr "Nincs kiválasztva beszerezhető alkatrész" #: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" @@ -3756,7 +3770,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:122 #: templates/js/translated/order.js:1253 msgid "Customer Reference" -msgstr "" +msgstr "Vevő azonosító" #: order/templates/order/sales_order_base.html:140 #: order/templates/order/sales_order_detail.html:78 @@ -3833,7 +3847,7 @@ msgstr "" #: order/views.py:245 msgid "Match Supplier Parts" -msgstr "" +msgstr "Beszállítói alkatrészek egyeztetése" #: order/views.py:489 msgid "Update prices" @@ -3842,7 +3856,7 @@ msgstr "" #: order/views.py:747 #, python-brace-format msgid "Ordered {n} parts" -msgstr "" +msgstr "{n} alkatrész megrendelve" #: order/views.py:858 msgid "Sales order not found" @@ -3893,7 +3907,7 @@ msgstr "" #: part/bom.py:125 part/models.py:83 part/models.py:879 #: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" -msgstr "" +msgstr "Alapértelmezett hely" #: part/bom.py:126 templates/email/low_stock_notification.html:17 msgid "Total Stock" @@ -3901,12 +3915,12 @@ msgstr "" #: part/bom.py:127 part/templates/part/part_base.html:185 msgid "Available Stock" -msgstr "" +msgstr "Elérhető készlet" #: part/bom.py:128 part/templates/part/part_base.html:203 #: templates/js/translated/part.js:1301 msgid "On Order" -msgstr "" +msgstr "Beszállítás alatt" #: part/forms.py:84 msgid "Select part category" @@ -3914,11 +3928,11 @@ msgstr "" #: part/forms.py:121 msgid "Add parameter template to same level categories" -msgstr "" +msgstr "Paraméter sablon hozzáadása az azonos szintű kategóriákhoz" #: part/forms.py:125 msgid "Add parameter template to all categories" -msgstr "" +msgstr "Paraméter sablon hozzáadása az összes kategóriához" #: part/forms.py:145 msgid "Input quantity for price calculation" @@ -3926,7 +3940,7 @@ msgstr "" #: part/models.py:84 msgid "Default location for parts in this category" -msgstr "" +msgstr "Ebben a kategóriában lévő alkatrészek helye alapban" #: part/models.py:87 msgid "Default keywords" @@ -3934,18 +3948,18 @@ msgstr "" #: part/models.py:87 msgid "Default keywords for parts in this category" -msgstr "" +msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" #: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "" +msgstr "Alkatrész kategória" #: part/models.py:98 part/templates/part/category.html:128 #: templates/InvenTree/search.html:95 templates/stats.html:96 #: users/models.py:40 msgid "Part Categories" -msgstr "" +msgstr "Alkatrész kategóriák" #: part/models.py:360 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:17 part/templates/part/category.html:133 @@ -3956,7 +3970,7 @@ msgstr "" #: templates/js/translated/part.js:1663 templates/navbar.html:21 #: templates/stats.html:92 templates/stats.html:101 users/models.py:41 msgid "Parts" -msgstr "" +msgstr "Alkatrészek" #: part/models.py:452 msgid "Invalid choice for parent part" @@ -3981,7 +3995,7 @@ msgstr "" #: part/models.py:778 msgid "Duplicate IPN not allowed in part settings" -msgstr "" +msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban" #: part/models.py:803 part/models.py:2622 msgid "Part name" @@ -4010,7 +4024,7 @@ msgstr "" #: part/models.py:833 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" -msgstr "" +msgstr "Kulcsszavak" #: part/models.py:834 msgid "Part keywords to improve visibility in search results" @@ -4022,7 +4036,7 @@ msgstr "" #: templates/InvenTree/settings/settings.html:223 #: templates/js/translated/part.js:1268 msgid "Category" -msgstr "" +msgstr "Kategória" #: part/models.py:842 msgid "Part category" @@ -4032,7 +4046,7 @@ msgstr "" #: templates/js/translated/part.js:618 templates/js/translated/part.js:1221 #: templates/js/translated/stock.js:1684 msgid "IPN" -msgstr "" +msgstr "IPN" #: part/models.py:848 msgid "Internal Part Number" @@ -4040,12 +4054,12 @@ msgstr "" #: part/models.py:854 msgid "Part revision or version number" -msgstr "" +msgstr "Alkatrész változat vagy verziószám" #: part/models.py:855 part/templates/part/part_base.html:281 -#: report/models.py:196 templates/js/translated/part.js:622 +#: report/models.py:200 templates/js/translated/part.js:622 msgid "Revision" -msgstr "" +msgstr "Változat" #: part/models.py:877 msgid "Where is this item normally stored?" @@ -4053,7 +4067,7 @@ msgstr "" #: part/models.py:924 part/templates/part/part_base.html:347 msgid "Default Supplier" -msgstr "" +msgstr "Alapértelmezett beszállító" #: part/models.py:925 msgid "Default supplier part" @@ -4069,7 +4083,7 @@ msgstr "" #: part/models.py:938 part/templates/part/part_base.html:196 msgid "Minimum Stock" -msgstr "" +msgstr "Minimális készlet" #: part/models.py:939 msgid "Minimum allowed stock level" @@ -4081,11 +4095,11 @@ msgstr "" #: part/models.py:952 msgid "Can this part be built from other parts?" -msgstr "" +msgstr "Gyártható-e ez az alkatrész más alkatrészekből?" #: part/models.py:958 msgid "Can this part be used to build other parts?" -msgstr "" +msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?" #: part/models.py:964 msgid "Does this part have tracking for unique items?" @@ -4137,7 +4151,7 @@ msgstr "" #: part/models.py:2369 msgid "Test templates can only be created for trackable parts" -msgstr "" +msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni" #: part/models.py:2386 msgid "Test with this name already exists for this part" @@ -4209,7 +4223,7 @@ msgstr "" #: part/models.py:2525 part/models.py:2574 part/models.py:2575 #: templates/InvenTree/settings/settings.html:218 msgid "Parameter Template" -msgstr "" +msgstr "Paraméter sablon" #: part/models.py:2527 msgid "Data" @@ -4221,7 +4235,7 @@ msgstr "" #: part/models.py:2579 templates/InvenTree/settings/settings.html:227 msgid "Default Value" -msgstr "" +msgstr "Alapértelmezett érték" #: part/models.py:2580 msgid "Default Parameter Value" @@ -4318,7 +4332,7 @@ msgstr "" #: part/models.py:2724 msgid "This BOM item is inherited by BOMs for variant parts" -msgstr "" +msgstr "Ezt a BOM tételt az alkatrész változatok BOM-jai is öröklik" #: part/models.py:2729 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:874 @@ -4327,11 +4341,11 @@ msgstr "" #: part/models.py:2730 msgid "Stock items for variant parts can be used for this BOM item" -msgstr "" +msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez a BOM tételhez" #: part/models.py:2815 stock/models.py:357 msgid "Quantity must be integer value for trackable parts" -msgstr "" +msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" #: part/models.py:2824 part/models.py:2826 msgid "Sub part must be specified" @@ -4371,7 +4385,7 @@ msgstr "" #: part/serializers.py:667 msgid "Select part to copy BOM from" -msgstr "" +msgstr "Válassz alkatrészt ahonnan BOM-ot másoljunk" #: part/serializers.py:678 msgid "Remove Existing Data" @@ -4387,15 +4401,15 @@ msgstr "" #: part/serializers.py:685 msgid "Include BOM items which are inherited from templated parts" -msgstr "" +msgstr "Sablon alkatrészektől örökölt BOM tételek használata" #: part/serializers.py:690 msgid "Skip Invalid Rows" -msgstr "" +msgstr "Hibás sorok kihagyása" #: part/serializers.py:691 msgid "Enable this option to skip invalid rows" -msgstr "" +msgstr "Engedély a hibás sorok kihagyására" #: part/serializers.py:734 msgid "Clear Existing BOM" @@ -4411,7 +4425,7 @@ msgstr "" #: part/serializers.py:805 msgid "Multiple matching parts found" -msgstr "" +msgstr "Több egyező alkatrész is található" #: part/serializers.py:808 msgid "No matching part found" @@ -4466,11 +4480,11 @@ msgstr "" #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" -msgstr "" +msgstr "Értesítések beállítva erre a kategóriára" #: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" -msgstr "" +msgstr "Értesítések kérése erre a kategóriára" #: part/templates/part/category.html:42 msgid "Category Actions" @@ -4478,44 +4492,44 @@ msgstr "" #: part/templates/part/category.html:47 msgid "Edit category" -msgstr "" +msgstr "Kategória szerkesztése" #: part/templates/part/category.html:48 msgid "Edit Category" -msgstr "" +msgstr "Kategória szerkesztése" #: part/templates/part/category.html:52 msgid "Delete category" -msgstr "" +msgstr "Kategória törlése" #: part/templates/part/category.html:53 msgid "Delete Category" -msgstr "" +msgstr "Kategória törlése" #: part/templates/part/category.html:61 msgid "Create new part category" -msgstr "" +msgstr "Alkatrész kategória létrehozása" #: part/templates/part/category.html:62 msgid "New Category" -msgstr "" +msgstr "Új kategória" #: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" -msgstr "" +msgstr "Kategória elérési út" #: part/templates/part/category.html:94 msgid "Top level part category" -msgstr "" +msgstr "Legfelső szintű alaktrész kategória" #: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" -msgstr "" +msgstr "Alkategóriák" #: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "Alkatrészek száma (alkategóriákkal együtt)" #: part/templates/part/category.html:156 msgid "Export Part Data" @@ -4527,11 +4541,11 @@ msgstr "" #: part/templates/part/category.html:160 msgid "Create new part" -msgstr "" +msgstr "Alkatrész létrehozása" #: part/templates/part/category.html:161 templates/js/translated/bom.js:365 msgid "New Part" -msgstr "" +msgstr "Új alkatrész" #: part/templates/part/category.html:175 msgid "Set category" @@ -4551,7 +4565,7 @@ msgstr "" #: part/templates/part/category.html:195 msgid "Part Parameters" -msgstr "" +msgstr "Alkatrész paraméterek" #: part/templates/part/category.html:288 msgid "Create Part Category" @@ -4568,11 +4582,11 @@ msgstr "" #: part/templates/part/category_delete.html:8 #, python-format msgid "This category contains %(count)s child categories" -msgstr "" +msgstr "Ez a kategória %(count)s alkategóriát tartalmaz" #: part/templates/part/category_delete.html:9 msgid "If this category is deleted, these child categories will be moved to the" -msgstr "" +msgstr "Ha törlöd ezt a kategóriát az alkategóriák át lesznek mozgatva a" #: part/templates/part/category_delete.html:11 msgid "category" @@ -4580,25 +4594,25 @@ msgstr "" #: part/templates/part/category_delete.html:13 msgid "top level Parts category" -msgstr "" +msgstr "legfelső szintű alaktrész kategória" #: part/templates/part/category_delete.html:25 #, python-format msgid "This category contains %(count)s parts" -msgstr "" +msgstr "Ez a kategória %(count)s alkatrészt tartalmaz" #: 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 "" +msgstr "Ha ez a kategória törölve lesz, ezek az alkatrészek a szülő kategóriába %(path)s mozognak" #: part/templates/part/category_delete.html:29 msgid "If this category is deleted, these parts will be moved to the top-level category Teile" -msgstr "" +msgstr "Ha ez a kategória törölve lesz, ezek az alkatrészek a legfelső kategóriába mozognak" #: part/templates/part/category_sidebar.html:13 msgid "Import Parts" -msgstr "" +msgstr "Alkatrészek importálása" #: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348 msgid "Duplicate Part" @@ -4612,12 +4626,12 @@ msgstr "" #: part/templates/part/copy_part.html:14 #: part/templates/part/create_part.html:11 msgid "Possible Matching Parts" -msgstr "" +msgstr "Valószínűleg egyező alkatrész" #: part/templates/part/copy_part.html:15 #: part/templates/part/create_part.html:12 msgid "The new part may be a duplicate of these existing parts" -msgstr "" +msgstr "Az új alkatrész lehet hogy másodpéldánya ezeknek a létezőknek" #: part/templates/part/create_part.html:17 #, python-format @@ -4631,11 +4645,11 @@ msgstr "" #: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" -msgstr "" +msgstr "A %(full_name)s összes változatának készlete" #: part/templates/part/detail.html:43 msgid "Part Stock Allocations" -msgstr "" +msgstr "Alkatrész készlet foglalások" #: part/templates/part/detail.html:60 msgid "Part Test Templates" @@ -4647,7 +4661,7 @@ msgstr "" #: part/templates/part/detail.html:122 msgid "Sales Order Allocations" -msgstr "" +msgstr "Vevői rendeléshez foglalások" #: part/templates/part/detail.html:162 msgid "Part Variants" @@ -4667,7 +4681,7 @@ msgstr "" #: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52 msgid "Related Parts" -msgstr "" +msgstr "Kapcsolódó alkatrészek" #: part/templates/part/detail.html:235 part/templates/part/detail.html:236 msgid "Add Related" @@ -4719,7 +4733,7 @@ msgstr "" #: part/templates/part/detail.html:342 msgid "Build Order Allocations" -msgstr "" +msgstr "Gyártáshoz foglalások" #: part/templates/part/detail.html:352 msgid "Part Suppliers" @@ -4731,7 +4745,7 @@ msgstr "" #: part/templates/part/detail.html:396 msgid "Delete manufacturer parts" -msgstr "" +msgstr "Gyártói alkatrészek törlése" #: part/templates/part/detail.html:578 msgid "Delete selected BOM items?" @@ -4782,60 +4796,59 @@ msgid "Unit Price - %(currency)s" msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 #: templates/patterns/wizard/match_fields.html:8 msgid "Missing selections for the following required columns" msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 #: templates/patterns/wizard/match_fields.html:19 msgid "Duplicate selections found, see below. Fix them then retry submitting." msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 #: templates/patterns/wizard/match_fields.html:34 msgid "File Fields" msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 #: templates/patterns/wizard/match_fields.html:41 msgid "Remove column" msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 #: templates/patterns/wizard/match_fields.html:59 msgid "Duplicate selection" msgstr "" -#: part/templates/part/import_wizard/ajax_part_upload.html:10 -#: templates/patterns/wizard/upload.html:11 -#, python-format -msgid "Step %(step)s of %(count)s" -msgstr "" - #: part/templates/part/import_wizard/ajax_part_upload.html:29 -#: part/templates/part/import_wizard/part_upload.html:15 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" #: part/templates/part/import_wizard/part_upload.html:8 msgid "Return to Parts" -msgstr "" +msgstr "Vissza az alkatrészekhez" -#: part/templates/part/import_wizard/part_upload.html:13 +#: part/templates/part/import_wizard/part_upload.html:16 msgid "Import Parts from File" -msgstr "" +msgstr "Alkatrészek importálása fájlból" #: part/templates/part/part_app_base.html:12 msgid "Part List" -msgstr "" +msgstr "Alkatrész lista" #: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 msgid "You are subscribed to notifications for this part" -msgstr "" +msgstr "Értesítések beállítva erre az alkatrészre" #: part/templates/part/part_base.html:35 msgid "Subscribe to notifications for this part" -msgstr "" +msgstr "Értesítések kérése erre az alkatrészre" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:35 @@ -4867,56 +4880,56 @@ msgstr "" #: part/templates/part/part_base.html:63 msgid "Count part stock" -msgstr "" +msgstr "Készlet számolása" #: part/templates/part/part_base.html:69 msgid "Transfer part stock" -msgstr "" +msgstr "Készlet áthelyezése" #: part/templates/part/part_base.html:84 msgid "Part actions" -msgstr "" +msgstr "Készlet műveletek" #: part/templates/part/part_base.html:87 msgid "Duplicate part" -msgstr "" +msgstr "Kettőzött alkatrész" #: part/templates/part/part_base.html:90 msgid "Edit part" -msgstr "" +msgstr "Alkarész szerkesztése" #: part/templates/part/part_base.html:93 msgid "Delete part" -msgstr "" +msgstr "Alkatrész törlése" #: part/templates/part/part_base.html:112 msgid "Part is a template part (variants can be made from this part)" -msgstr "" +msgstr "Sablon alkatrész (változatok létrehozhatók belőle)" #: part/templates/part/part_base.html:116 msgid "Part can be assembled from other parts" -msgstr "" +msgstr "Ez az alkatrész gyártható másik alkatrészekből" #: part/templates/part/part_base.html:120 msgid "Part can be used in assemblies" -msgstr "" +msgstr "Használható más alkatrészek gyártásához" #: part/templates/part/part_base.html:124 msgid "Part stock is tracked by serial number" -msgstr "" +msgstr "Készlet sorozatszám alapján követendő" #: part/templates/part/part_base.html:128 msgid "Part can be purchased from external suppliers" -msgstr "" +msgstr "Beszállítótól rendelhető" #: part/templates/part/part_base.html:132 msgid "Part can be sold to customers" -msgstr "" +msgstr "Vevő által rendelhető, eladható" #: part/templates/part/part_base.html:138 #: part/templates/part/part_base.html:146 msgid "Part is virtual (not a physical part)" -msgstr "" +msgstr "Virtuális (nem kézzelfogható alkatrész)" #: part/templates/part/part_base.html:139 #: templates/js/translated/company.js:508 @@ -4929,17 +4942,17 @@ msgstr "" #: part/templates/part/part_base.html:156 #: part/templates/part/part_base.html:579 msgid "Show Part Details" -msgstr "" +msgstr "Alkatrész részletei" #: part/templates/part/part_base.html:173 #, python-format msgid "This part is a variant of %(link)s" -msgstr "" +msgstr "Ez az alkatrész egy változata a %(link)s alkatrésznek" #: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217 #: templates/js/translated/table_filters.js:193 msgid "In Stock" -msgstr "" +msgstr "Készleten" #: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178 msgid "Required for Build Orders" @@ -4985,7 +4998,7 @@ msgstr "" #: part/templates/part/part_base.html:573 msgid "Hide Part Details" -msgstr "" +msgstr "Részletek elrejtése" #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" @@ -5055,7 +5068,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:34 #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" -msgstr "" +msgstr "Foglalások" #: part/templates/part/part_sidebar.html:48 msgid "Test Templates" @@ -5067,8 +5080,7 @@ msgstr "" #: part/templates/part/partial_delete.html:9 #, python-format -msgid "" -"Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" +msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" "
Disable the \"Active\" part attribute and re-try.\n" " " msgstr "" @@ -5081,7 +5093,7 @@ msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" -msgstr "" +msgstr "Ez a alkatrész %(count)s másik alkatrész BOM-jában szerepel. Ha törlöd a következő alaktrészek módosítva lesznek" #: part/templates/part/partial_delete.html:32 #, python-format @@ -5091,17 +5103,17 @@ msgstr "" #: part/templates/part/partial_delete.html:43 #, python-format msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:" -msgstr "" +msgstr "Ennek az alkatrésznek %(count)s gyártója van. Ha törlöd a következő gyártói alkatrészek is törölve lesznek:" #: part/templates/part/partial_delete.html:54 #, python-format msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:" -msgstr "" +msgstr "Ennek az alkatrésznek %(count)s beszállítója van. Ha törlöd a következő beszállítói alkatrészek is törölve lesznek:" #: part/templates/part/partial_delete.html:65 #, python-format msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." -msgstr "" +msgstr "Összesen %(count)s követésre kötelezett '%(full_name)s' alkatrész van. Ha törlöd, a követési információk véglegesen elvesznek." #: part/templates/part/prices.html:16 msgid "Pricing ranges" @@ -5171,7 +5183,7 @@ msgstr "" #: part/templates/part/set_category.html:9 msgid "Set category for the following parts" -msgstr "" +msgstr "Állítsd be a következő alkatrészek kategóriáját" #: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813 #: templates/js/translated/part.js:497 templates/js/translated/part.js:1122 @@ -5218,7 +5230,7 @@ msgstr "" #: part/templates/part/upload_bom.html:40 msgid "Each part must already exist in the database" -msgstr "" +msgstr "Minden egyes alkatrésznek léteznie kell már az adatbázisban" #: part/templates/part/variant_part.html:9 msgid "Create new part variant" @@ -5231,7 +5243,7 @@ msgstr "" #: part/templatetags/inventree_extras.py:125 msgid "Unknown database" -msgstr "" +msgstr "Ismeretlen adatbázis" #: part/views.py:90 msgid "Set Part Category" @@ -5240,7 +5252,7 @@ msgstr "" #: part/views.py:140 #, python-brace-format msgid "Set category for {n} parts" -msgstr "" +msgstr "Állítsd be {n} alkatrész kategóriáját" #: part/views.py:212 msgid "Match References" @@ -5400,7 +5412,7 @@ msgstr "" #: plugin/serializers.py:51 msgid "Source for the package - this can be a custom registry or a VCS path" -msgstr "" +msgstr "Csomag forrása - ez lehet egy registry vagy VCS útvonal" #: plugin/serializers.py:56 msgid "Package Name" @@ -5408,7 +5420,7 @@ msgstr "" #: plugin/serializers.py:57 msgid "Name for the Plugin Package - can also contain a version indicator" -msgstr "" +msgstr "Plugin csomag neve - verzió megjelölést is tartalmazhat" #: plugin/serializers.py:60 msgid "Confirm plugin installation" @@ -5416,7 +5428,7 @@ msgstr "" #: plugin/serializers.py:61 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." -msgstr "" +msgstr "Ez telepíti ezt a plugint az aktuális példányra. A példány karbantartási módba megy." #: plugin/serializers.py:76 msgid "Installation not confirmed" @@ -5426,70 +5438,70 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: report/api.py:235 report/api.py:282 +#: report/api.py:234 report/api.py:278 #, python-brace-format -msgid "Template file '{template}' is missing or does not exist" +msgid "Template file '{filename}' is missing or does not exist" msgstr "" -#: report/models.py:178 +#: report/models.py:182 msgid "Template name" msgstr "" -#: report/models.py:184 +#: report/models.py:188 msgid "Report template file" msgstr "" -#: report/models.py:191 +#: report/models.py:195 msgid "Report template description" msgstr "" -#: report/models.py:197 +#: report/models.py:201 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:288 +#: report/models.py:292 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:295 +#: report/models.py:299 msgid "Report template is enabled" msgstr "" -#: report/models.py:319 +#: report/models.py:323 msgid "StockItem query filters (comma-separated list of key=value pairs)" -msgstr "" +msgstr "Készlet lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)" -#: report/models.py:327 +#: report/models.py:331 msgid "Include Installed Tests" msgstr "" -#: report/models.py:328 +#: report/models.py:332 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:378 +#: report/models.py:382 msgid "Build Filters" -msgstr "" +msgstr "Gyártás szűrők" -#: report/models.py:379 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Gyártás lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok" -#: report/models.py:421 +#: report/models.py:425 msgid "Part Filters" -msgstr "" +msgstr "Alkatrész szűrők" -#: report/models.py:422 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Alkatrész lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok" -#: report/models.py:456 +#: report/models.py:460 msgid "Purchase order query filters" -msgstr "" +msgstr "Megrendelés lekérdezés szűrők" -#: report/models.py:494 +#: report/models.py:498 msgid "Sales order query filters" -msgstr "" +msgstr "Vevő rendelés lekérdezés szűrők" #: report/models.py:548 msgid "Snippet" @@ -5552,7 +5564,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:38 #: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649 msgid "Date" -msgstr "" +msgstr "Dátum" #: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" @@ -5583,13 +5595,13 @@ msgstr "" #: stock/api.py:533 msgid "Serial numbers cannot be supplied for a non-trackable part" -msgstr "" +msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" #: stock/forms.py:74 stock/forms.py:198 stock/models.py:576 #: stock/templates/stock/item_base.html:195 #: templates/js/translated/stock.js:1833 msgid "Expiry Date" -msgstr "" +msgstr "Lejárati dátum" #: stock/forms.py:75 stock/forms.py:199 msgid "Expiration date for this stock item" @@ -5671,7 +5683,7 @@ msgstr "" #: stock/models.py:472 msgid "Base part" -msgstr "" +msgstr "Alap alkatrész" #: stock/models.py:480 msgid "Select a matching supplier part for this stock item" @@ -5740,7 +5752,7 @@ msgstr "" #: stock/models.py:590 msgid "Delete this Stock Item when stock is depleted" -msgstr "" +msgstr "Készlet tétel törlése ha kimerül" #: stock/models.py:600 stock/templates/stock/item.html:128 msgid "Stock Item Notes" @@ -5752,7 +5764,7 @@ msgstr "" #: stock/models.py:1096 msgid "Part is not set as trackable" -msgstr "" +msgstr "Az alkatrész nem követésre kötelezett" #: stock/models.py:1102 msgid "Quantity must be integer" @@ -5794,7 +5806,7 @@ msgstr "" #: stock/models.py:1204 msgid "Stock item is currently in production" -msgstr "" +msgstr "Készlet tétel gyártás alatt" #: stock/models.py:1207 msgid "Serialized stock cannot be merged" @@ -5818,7 +5830,7 @@ msgstr "" #: stock/models.py:1397 msgid "StockItem cannot be moved as it is not in stock" -msgstr "" +msgstr "Készlet tétel nem mozgatható mivel nincs készleten" #: stock/models.py:1896 msgid "Entry notes" @@ -5907,15 +5919,15 @@ msgstr "" #: stock/serializers.py:650 msgid "Item is allocated to a sales order" -msgstr "" +msgstr "A tétel egy vevő rendeléshez foglalt" #: stock/serializers.py:654 msgid "Item is allocated to a build order" -msgstr "" +msgstr "A tétel egy gyártási utasításhoz foglalt" #: stock/serializers.py:684 msgid "Customer to assign stock items" -msgstr "" +msgstr "Vevő akihez rendeljük a készlet tételeket" #: stock/serializers.py:690 msgid "Selected company is not a customer" @@ -5939,7 +5951,7 @@ msgstr "" #: stock/serializers.py:802 msgid "Allow stock items with different supplier parts to be merged" -msgstr "" +msgstr "Különböző beszállítói alkatrészekből származó készletek összeolvasztásának engedélyezése" #: stock/serializers.py:807 msgid "Allow mismatched status" @@ -5963,15 +5975,15 @@ msgstr "" #: stock/templates/stock/item.html:18 msgid "Stock Tracking Information" -msgstr "" +msgstr "Készlettörténeti információk" #: stock/templates/stock/item.html:29 msgid "New Entry" -msgstr "" +msgstr "Új bejegyzés" #: stock/templates/stock/item.html:48 msgid "Stock Item Allocations" -msgstr "" +msgstr "Készlet foglalások" #: stock/templates/stock/item.html:64 msgid "Child Stock Items" @@ -6014,7 +6026,7 @@ msgstr "" #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" -msgstr "" +msgstr "Vonalkód leválasztása" #: stock/templates/stock/item_base.html:44 msgid "Link Barcode" @@ -6133,15 +6145,15 @@ msgstr "" #: stock/templates/stock/item_base.html:208 #: templates/js/translated/stock.js:1846 msgid "Last Updated" -msgstr "" +msgstr "Utoljára módosítva" #: stock/templates/stock/item_base.html:213 msgid "Last Stocktake" -msgstr "" +msgstr "Utolsó leltár" #: stock/templates/stock/item_base.html:217 msgid "No stocktake performed" -msgstr "" +msgstr "Még nem volt leltározva" #: stock/templates/stock/item_base.html:235 msgid "You are not in the list of owners of this item. This stock item cannot be edited." @@ -6149,7 +6161,7 @@ msgstr "" #: stock/templates/stock/item_base.html:242 msgid "This stock item is in production and cannot be edited." -msgstr "" +msgstr "Ez a készlet tétel éppen gyártás alatt van és nem szerkeszthető." #: stock/templates/stock/item_base.html:243 msgid "Edit the stock item from the build view." @@ -6161,11 +6173,11 @@ msgstr "" #: stock/templates/stock/item_base.html:264 msgid "This stock item is allocated to Sales Order" -msgstr "" +msgstr "Ez a készlet elem egy vevői rendeléshez foglalt" #: stock/templates/stock/item_base.html:272 msgid "This stock item is allocated to Build Order" -msgstr "" +msgstr "Ez a készlet elem egy gyártási utasításhoz foglalt" #: stock/templates/stock/item_base.html:278 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." @@ -6240,11 +6252,11 @@ msgstr "" #: stock/templates/stock/location.html:99 #: stock/templates/stock/location.html:105 msgid "Location Path" -msgstr "" +msgstr "Hely elérési út" #: stock/templates/stock/location.html:106 msgid "Top level stock location" -msgstr "" +msgstr "Legfelső szintű készlet hely" #: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." @@ -6254,12 +6266,12 @@ msgstr "" #: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" -msgstr "" +msgstr "Alhelyek" #: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:109 users/models.py:42 msgid "Stock Locations" -msgstr "" +msgstr "Készlethelyek" #: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" @@ -6279,7 +6291,7 @@ msgstr "" #: stock/templates/stock/stock_sidebar.html:5 msgid "Stock Tracking" -msgstr "" +msgstr "Készlettörténet" #: stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" @@ -6296,7 +6308,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format msgid "This stock item is current an instance of %(part)s" -msgstr "" +msgstr "Ez a készlet tétel jelenleg a %(part)s egyik példánya" #: stock/templates/stock/stockitem_convert.html:9 msgid "It can be converted to one of the part variants listed below." @@ -6308,7 +6320,7 @@ msgstr "" #: stock/templates/stock/tracking_delete.html:6 msgid "Are you sure you want to delete this stock tracking entry?" -msgstr "" +msgstr "Biztosan törölni akarod ezt a készlettörténeti bejegyzést?" #: stock/views.py:162 templates/js/translated/stock.js:140 msgid "Edit Stock Location" @@ -6392,15 +6404,15 @@ msgstr "" #: stock/views.py:1210 msgid "Delete Stock Tracking Entry" -msgstr "" +msgstr "Készlettörténet bejegyzés törlése" #: stock/views.py:1217 msgid "Edit Stock Tracking Entry" -msgstr "" +msgstr "Készlettörténet bejegyzés szerkesztése" #: stock/views.py:1226 msgid "Add Stock Tracking Entry" -msgstr "" +msgstr "Készlettörténet bejegyzés hozzáadása" #: templates/403.html:5 templates/403.html:11 msgid "Permission Denied" @@ -6420,11 +6432,11 @@ msgstr "" #: templates/500.html:5 templates/500.html:11 msgid "Internal Server Error" -msgstr "" +msgstr "Belső kiszolgáló hiba" #: templates/500.html:14 msgid "The InvenTree server raised an internal error" -msgstr "" +msgstr "Az InvenTree kiszolgáló belső hibát jelzett" #: templates/500.html:15 msgid "Refer to the error log in the admin interface for further details" @@ -6444,15 +6456,15 @@ msgstr "" #: templates/InvenTree/index.html:88 msgid "Subscribed Parts" -msgstr "" +msgstr "Értesítésre beállított alkatrészek" #: templates/InvenTree/index.html:98 msgid "Subscribed Categories" -msgstr "" +msgstr "Értesítésre beállított kategóriák" #: templates/InvenTree/index.html:108 msgid "Latest Parts" -msgstr "" +msgstr "Legújabb alkatrészek" #: templates/InvenTree/index.html:119 msgid "BOM Waiting Validation" @@ -6464,7 +6476,7 @@ msgstr "" #: templates/InvenTree/index.html:168 msgid "Depleted Stock" -msgstr "" +msgstr "Kimerült készlet" #: templates/InvenTree/index.html:191 msgid "Expired Stock" @@ -6480,7 +6492,7 @@ msgstr "" #: templates/InvenTree/index.html:235 msgid "Overdue Build Orders" -msgstr "" +msgstr "Megkésett gyártások" #: templates/InvenTree/index.html:255 msgid "Outstanding Purchase Orders" @@ -6488,7 +6500,7 @@ msgstr "" #: templates/InvenTree/index.html:266 msgid "Overdue Purchase Orders" -msgstr "" +msgstr "Megkésett megrendelések" #: templates/InvenTree/index.html:286 msgid "Outstanding Sales Orders" @@ -6496,7 +6508,7 @@ msgstr "" #: templates/InvenTree/index.html:297 msgid "Overdue Sales Orders" -msgstr "" +msgstr "Megkésett vevői rendelések" #: templates/InvenTree/search.html:8 msgid "Search Results" @@ -6504,82 +6516,82 @@ msgstr "" #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" -msgstr "" +msgstr "Vonalkód beállítások" #: templates/InvenTree/settings/build.html:8 msgid "Build Order Settings" -msgstr "" +msgstr "Gyártási utasítás bellításai" #: templates/InvenTree/settings/category.html:7 msgid "Category Settings" -msgstr "" +msgstr "Kategória beállítások" #: templates/InvenTree/settings/currencies.html:8 msgid "Currency Settings" -msgstr "" +msgstr "Pénznem beállítások" #: templates/InvenTree/settings/currencies.html:19 msgid "Base Currency" -msgstr "" +msgstr "Alapértelmezett pénznem" #: templates/InvenTree/settings/currencies.html:24 msgid "Exchange Rates" -msgstr "" +msgstr "Árfolyamok" #: templates/InvenTree/settings/currencies.html:38 msgid "Last Update" -msgstr "" +msgstr "Utolsó frissítés" #: templates/InvenTree/settings/currencies.html:44 msgid "Never" -msgstr "" +msgstr "Soha" #: templates/InvenTree/settings/currencies.html:49 msgid "Update Now" -msgstr "" +msgstr "Frissítés most" #: templates/InvenTree/settings/global.html:9 msgid "Server Settings" -msgstr "" +msgstr "Kiszolgáló beállítások" #: templates/InvenTree/settings/login.html:9 #: templates/InvenTree/settings/sidebar.html:29 msgid "Login Settings" -msgstr "" +msgstr "Belépési beállítások" #: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" -msgstr "" +msgstr "Regisztráció" #: templates/InvenTree/settings/mixins/settings.html:5 #: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 msgid "Settings" -msgstr "" +msgstr "Beállítások" #: templates/InvenTree/settings/mixins/urls.html:5 msgid "URLs" -msgstr "" +msgstr "URL-ek" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format msgid "The Base-URL for this plugin is %(base)s." -msgstr "" +msgstr "Az alap URL-je ennek a pluginnak %(base)s." #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" -msgstr "" +msgstr "Megnyitás új fülön" #: templates/InvenTree/settings/part.html:7 msgid "Part Settings" -msgstr "" +msgstr "Alkatrész beállítások" #: templates/InvenTree/settings/part.html:44 msgid "Part Import" -msgstr "" +msgstr "Alkatrész importálás" #: templates/InvenTree/settings/part.html:48 msgid "Import Part" -msgstr "" +msgstr "Alkatrész importálása" #: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" @@ -6587,39 +6599,39 @@ msgstr "" #: templates/InvenTree/settings/plugin.html:10 msgid "Plugin Settings" -msgstr "" +msgstr "Plugin beállítások" #: templates/InvenTree/settings/plugin.html:16 msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." -msgstr "" +msgstr "Az alábbi beállítások módosításához az InvenTree azonnali újraindítása szükséges. Aktív használat közben ne változtass ezeken." #: templates/InvenTree/settings/plugin.html:33 msgid "Plugins" -msgstr "" +msgstr "Pluginok" #: templates/InvenTree/settings/plugin.html:38 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" -msgstr "" +msgstr "Plugin Telepítése" #: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 #: users/models.py:39 msgid "Admin" -msgstr "" +msgstr "Admin" #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" -msgstr "" +msgstr "Szerző" #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" -msgstr "" +msgstr "Verzió" #: templates/InvenTree/settings/plugin.html:92 msgid "Inactive plugins" -msgstr "" +msgstr "Inaktív pluginok" #: templates/InvenTree/settings/plugin.html:115 msgid "Plugin Error Stack" @@ -6631,7 +6643,7 @@ msgstr "" #: templates/InvenTree/settings/plugin.html:126 msgid "Message" -msgstr "" +msgstr "Üzenet" #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format @@ -6640,131 +6652,131 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:17 msgid "Plugin information" -msgstr "" +msgstr "Plugin információ" #: templates/InvenTree/settings/plugin_settings.html:48 msgid "no version information supplied" -msgstr "" +msgstr "nincs megadva verzió információ" #: templates/InvenTree/settings/plugin_settings.html:62 msgid "License" -msgstr "" +msgstr "Licenc" #: templates/InvenTree/settings/plugin_settings.html:71 msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." -msgstr "" +msgstr "A kódinformáció a plugin legújabb git commitból származik. Előfordulhat, hogy nem a hivatalos verziószámokat vagy információkat, hanem a ténylegesen futó kódot tükrözi." #: templates/InvenTree/settings/plugin_settings.html:77 msgid "Package information" -msgstr "" +msgstr "Csomag információ" #: templates/InvenTree/settings/plugin_settings.html:83 msgid "Installation method" -msgstr "" +msgstr "Telepítési mód" #: templates/InvenTree/settings/plugin_settings.html:86 msgid "This plugin was installed as a package" -msgstr "" +msgstr "Ez a plugin csomagként lett telepítve" #: templates/InvenTree/settings/plugin_settings.html:88 msgid "This plugin was found in a local InvenTree path" -msgstr "" +msgstr "Ez a plugin a lokális InvenTree útvonalon található" #: templates/InvenTree/settings/plugin_settings.html:94 msgid "Installation path" -msgstr "" +msgstr "Telepítési útvonal" #: templates/InvenTree/settings/plugin_settings.html:100 msgid "Commit Author" -msgstr "" +msgstr "Commit szerzője" #: templates/InvenTree/settings/plugin_settings.html:104 #: templates/about.html:47 msgid "Commit Date" -msgstr "" +msgstr "Commit dátuma" #: templates/InvenTree/settings/plugin_settings.html:108 #: templates/about.html:40 msgid "Commit Hash" -msgstr "" +msgstr "Commit hash" #: templates/InvenTree/settings/plugin_settings.html:112 msgid "Commit Message" -msgstr "" +msgstr "Commit üzenet" #: templates/InvenTree/settings/plugin_settings.html:117 msgid "Sign Status" -msgstr "" +msgstr "Aláírás státusza" #: templates/InvenTree/settings/plugin_settings.html:122 msgid "Sign Key" -msgstr "" +msgstr "Aláíró kulcs" #: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" -msgstr "" +msgstr "Beszerzési rendelés beállításai" #: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 msgid "Report Settings" -msgstr "" +msgstr "Riport beállítások" #: templates/InvenTree/settings/setting.html:33 msgid "No value set" -msgstr "" +msgstr "Nincsenek értékek" #: templates/InvenTree/settings/setting.html:38 msgid "Edit setting" -msgstr "" +msgstr "Beállítások módosítása" #: templates/InvenTree/settings/settings.html:115 msgid "Edit Plugin Setting" -msgstr "" +msgstr "Plugin beállítások módosítása" #: templates/InvenTree/settings/settings.html:117 msgid "Edit Global Setting" -msgstr "" +msgstr "Általános beállítások szerkesztése" #: templates/InvenTree/settings/settings.html:119 msgid "Edit User Setting" -msgstr "" +msgstr "Felhasználói beállítások szerkesztése" #: templates/InvenTree/settings/settings.html:208 msgid "No category parameter templates found" -msgstr "" +msgstr "Nincs kategória paraméter sablon" #: templates/InvenTree/settings/settings.html:230 #: templates/InvenTree/settings/settings.html:329 msgid "Edit Template" -msgstr "" +msgstr "Sablon szerkesztése" #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 msgid "Delete Template" -msgstr "" +msgstr "Sablon törlése" #: templates/InvenTree/settings/settings.html:309 msgid "No part parameter templates found" -msgstr "" +msgstr "Nincs alkatrész paraméter sablon" #: templates/InvenTree/settings/settings.html:313 msgid "ID" -msgstr "" +msgstr "ID" #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "Felhasználói beállítások" #: templates/InvenTree/settings/sidebar.html:9 #: templates/InvenTree/settings/user.html:12 msgid "Account Settings" -msgstr "" +msgstr "Fiókbeállítások" #: templates/InvenTree/settings/sidebar.html:11 #: templates/InvenTree/settings/user_display.html:9 msgid "Display Settings" -msgstr "" +msgstr "Megjelenítési beállítások" #: templates/InvenTree/settings/sidebar.html:13 msgid "Home Page" @@ -6773,7 +6785,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:15 #: templates/InvenTree/settings/user_search.html:9 msgid "Search Settings" -msgstr "" +msgstr "Keresési beállítások" #: templates/InvenTree/settings/sidebar.html:17 msgid "Label Printing" @@ -6786,11 +6798,11 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:24 msgid "Global Settings" -msgstr "" +msgstr "Általános beállítások" #: templates/InvenTree/settings/sidebar.html:27 msgid "Server Configuration" -msgstr "" +msgstr "Kiszolgáló konfiguráció" #: templates/InvenTree/settings/sidebar.html:33 msgid "Currencies" @@ -6802,11 +6814,11 @@ msgstr "" #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" -msgstr "" +msgstr "Vevő rendelés beállításai" #: templates/InvenTree/settings/stock.html:7 msgid "Stock Settings" -msgstr "" +msgstr "Készlet beállítások" #: templates/InvenTree/settings/user.html:18 #: templates/account/password_reset_from_key.html:4 @@ -6833,7 +6845,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "A következő email címek vannak hozzárendelve a felhasználódhoz:" #: templates/InvenTree/settings/user.html:75 msgid "Verified" @@ -6867,15 +6879,15 @@ msgstr "" #: templates/InvenTree/settings/user.html:96 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." -msgstr "" +msgstr "Jelenleg nincs beállítva e-mail címed. Fel kellene venned egy e-mail címet, hogy értesítéseket kaphass, visszaállíthasd jelszavad, stb." #: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" -msgstr "" +msgstr "Email cím hozzáadása" #: templates/InvenTree/settings/user.html:109 msgid "Add Email" -msgstr "" +msgstr "Email hozzáadása" #: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" @@ -6969,11 +6981,11 @@ msgstr "" #: templates/InvenTree/settings/user.html:266 msgid "Do you really want to remove the selected email address?" -msgstr "" +msgstr "Biztosan törölni szeretnéd a kiválasztott email címet?" #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" -msgstr "" +msgstr "Téma beállítások" #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" @@ -6985,7 +6997,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" -msgstr "" +msgstr "Nyelvi beállítások" #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" @@ -7010,36 +7022,36 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:93 msgid "Show only sufficent" -msgstr "" +msgstr "Csak a szükséges megjelenítése" #: templates/InvenTree/settings/user_display.html:95 msgid "and hidden." -msgstr "" +msgstr "és rejtett." #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" -msgstr "" +msgstr "Mutasd őket is" #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" -msgstr "" +msgstr "Segítsd a fordítási munkát!" #: templates/InvenTree/settings/user_display.html:102 #, python-format msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "" +msgstr "A nyelvi fordításai az InvenTree web alkalmazásnak közösségiek a crowdin-en. A közreműködéseket szívesen fogadjuk és bátorítjuk." #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" -msgstr "" +msgstr "Főoldal beállításai" #: templates/InvenTree/settings/user_labels.html:9 msgid "Label Settings" -msgstr "" +msgstr "Címke beállítások" #: templates/about.html:10 msgid "InvenTree Version Information" -msgstr "" +msgstr "InvenTree verzió információk" #: templates/about.html:11 templates/about.html:105 #: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 @@ -7056,11 +7068,11 @@ msgstr "" #: templates/about.html:25 msgid "Development Version" -msgstr "" +msgstr "Fejlesztői verzió" #: templates/about.html:28 msgid "Up to Date" -msgstr "" +msgstr "Naprakész" #: templates/about.html:30 msgid "Update Available" @@ -7068,43 +7080,43 @@ msgstr "" #: templates/about.html:53 msgid "InvenTree Documentation" -msgstr "" +msgstr "Inventree dokumentáció" #: templates/about.html:58 msgid "API Version" -msgstr "" +msgstr "API verzió" #: templates/about.html:63 msgid "Python Version" -msgstr "" +msgstr "Python verzió" #: templates/about.html:68 msgid "Django Version" -msgstr "" +msgstr "Django verzió" #: templates/about.html:73 msgid "View Code on GitHub" -msgstr "" +msgstr "Megtekintés a GitHubon" #: templates/about.html:78 msgid "Credits" -msgstr "" +msgstr "Közreműködők" #: templates/about.html:83 msgid "Mobile App" -msgstr "" +msgstr "Mobil alkalmazás" #: templates/about.html:88 msgid "Submit Bug Report" -msgstr "" +msgstr "Hibabejelentés küldése" #: templates/about.html:95 templates/clip.html:4 msgid "copy to clipboard" -msgstr "" +msgstr "vágólapra másolás" #: templates/about.html:95 msgid "copy version information" -msgstr "" +msgstr "verzió információk másolása" #: templates/account/email_confirm.html:6 #: templates/account/email_confirm.html:10 @@ -7114,12 +7126,12 @@ msgstr "" #: templates/account/email_confirm.html:16 #, python-format msgid "Please confirm that %(email)s is an email address for user %(user_display)s." -msgstr "" +msgstr "Erősítsd meg hogy a %(email)s email a %(user_display)s felhasználó email címe." #: templates/account/email_confirm.html:27 #, python-format msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." -msgstr "" +msgstr "Ez az email megerősítő link lejárt vagy hibás. Klikk ide az új megerősítési kérelem elküldéséhez." #: templates/account/login.html:6 templates/account/login.html:16 #: templates/account/login.html:39 @@ -7128,16 +7140,14 @@ msgstr "" #: templates/account/login.html:21 #, python-format -msgid "" -"Please sign in with one\n" +msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" #: templates/account/login.html:25 #, python-format -msgid "" -"If you have not created an account yet, then please\n" +msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" @@ -7147,7 +7157,7 @@ msgstr "" #: templates/account/login.html:47 msgid "InvenTree demo instance" -msgstr "" +msgstr "InvenTree demo példány" #: templates/account/login.html:47 msgid "Click here for login details" @@ -7160,15 +7170,15 @@ msgstr "" #: templates/account/logout.html:5 templates/account/logout.html:8 #: templates/account/logout.html:20 msgid "Sign Out" -msgstr "" +msgstr "Kijelentkezés" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "" +msgstr "Biztosan ki akarsz jelentkezni?" #: templates/account/logout.html:19 msgid "Back to Site" -msgstr "" +msgstr "Vissza a webhelyre" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 @@ -7177,7 +7187,7 @@ msgstr "" #: templates/account/password_reset.html:18 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." -msgstr "" +msgstr "Elfelejtetted a jelszavad? Írd be az e-mail címed lentebb, és küldünk egy emailt, ami lehetővé teszi a jelszó visszaállítását." #: templates/account/password_reset.html:23 msgid "Reset My Password" @@ -7219,7 +7229,7 @@ msgstr "" #: templates/admin_button.html:2 msgid "View in administration panel" -msgstr "" +msgstr "Adminisztrációs panel megnyitása" #: templates/allauth_2fa/authenticate.html:5 msgid "Two-Factor Authentication" @@ -7248,7 +7258,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 msgid "Back to settings" -msgstr "" +msgstr "Vissza a beállításokhoz" #: templates/allauth_2fa/remove.html:6 msgid "Disable Two-Factor Authentication" @@ -7272,7 +7282,7 @@ msgstr "" #: templates/allauth_2fa/setup.html:14 msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." -msgstr "" +msgstr "Olvasd be a lenti QR kódot egy kiválaszott token generátorral (például a Google Authenticator-ral)." #: templates/allauth_2fa/setup.html:23 msgid "Step 2" @@ -7296,11 +7306,11 @@ msgstr "" #: templates/base.html:97 msgid "Server Restart Required" -msgstr "" +msgstr "Kiszolgáló újraindítása szükséges" #: templates/base.html:100 msgid "A configuration option has been changed which requires a server restart" -msgstr "" +msgstr "Egy olyan konfigurációs opció megváltozott ami a kiszolgáló újraindítását igényli" #: templates/base.html:100 msgid "Contact your system administrator for further information" @@ -7321,7 +7331,7 @@ msgstr "" #: templates/email/build_order_required_stock.html:14 msgid "The following parts are low on required stock" -msgstr "" +msgstr "A következő alkatrészek szükséges készlete alacsony" #: templates/email/build_order_required_stock.html:18 #: templates/js/translated/bom.js:1335 @@ -7334,16 +7344,16 @@ msgstr "" #: templates/js/translated/build.js:2048 #: templates/js/translated/table_filters.js:178 msgid "Available" -msgstr "" +msgstr "Elérhető" #: templates/email/build_order_required_stock.html:38 #: templates/email/low_stock_notification.html:31 msgid "You are receiving this email because you are subscribed to notifications for this part " -msgstr "" +msgstr "Ezért kapod ezt a levelet mert értesítést kértél erre az alkatrészre " #: templates/email/email.html:35 msgid "InvenTree version" -msgstr "" +msgstr "InvenTree verzió" #: templates/email/low_stock_notification.html:7 #, python-format @@ -7368,7 +7378,7 @@ msgstr "" #: templates/image_download.html:12 msgid "Remote server must be accessible" -msgstr "" +msgstr "A távoli kiszolgálónak elérhetőnek kell lennie" #: templates/image_download.html:13 msgid "Remote image must not exceed maximum allowable file size" @@ -7380,7 +7390,7 @@ msgstr "" #: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" -msgstr "" +msgstr "Nincs válasz az InvenTree kiszolgálótól" #: templates/js/translated/api.js:192 msgid "Error 400: Bad request" @@ -7412,7 +7422,7 @@ msgstr "" #: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" -msgstr "" +msgstr "A kért erőforrás nem található a kiszolgálón" #: templates/js/translated/api.js:212 msgid "Error 405: Method Not Allowed" @@ -7428,7 +7438,7 @@ msgstr "" #: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" -msgstr "" +msgstr "Időtúllépés a kiszolgálótól való adatlekérés közben" #: templates/js/translated/api.js:221 msgid "Unhandled Error Code" @@ -7456,7 +7466,7 @@ msgstr "" #: templates/js/translated/attachment.js:167 msgid "Upload Date" -msgstr "" +msgstr "Feltöltés dátuma" #: templates/js/translated/attachment.js:180 msgid "Edit attachment" @@ -7468,102 +7478,102 @@ msgstr "" #: templates/js/translated/barcode.js:29 msgid "Scan barcode data here using wedge scanner" -msgstr "" +msgstr "Vonalkód beolvasása ide a kódolvasó használatával" #: templates/js/translated/barcode.js:31 msgid "Enter barcode data" -msgstr "" +msgstr "Add meg a vonalkódot" #: templates/js/translated/barcode.js:35 msgid "Barcode" -msgstr "" +msgstr "Vonalkód" #: templates/js/translated/barcode.js:53 msgid "Enter optional notes for stock transfer" -msgstr "" +msgstr "Megjegyzések a készlet áthelyezéshez" #: templates/js/translated/barcode.js:54 msgid "Enter notes" -msgstr "" +msgstr "Írd be a megjegyzéseket" #: templates/js/translated/barcode.js:92 msgid "Server error" -msgstr "" +msgstr "Kiszolgálóhiba" #: templates/js/translated/barcode.js:113 msgid "Unknown response from server" -msgstr "" +msgstr "Ismeretlen válasz a kiszolgálótól" #: templates/js/translated/barcode.js:140 #: templates/js/translated/modals.js:1046 msgid "Invalid server response" -msgstr "" +msgstr "Érvénytelen válasz a szervertől" #: templates/js/translated/barcode.js:233 msgid "Scan barcode data below" -msgstr "" +msgstr "Olvasd be a vonalkódot lentebb" #: templates/js/translated/barcode.js:280 templates/navbar.html:94 msgid "Scan Barcode" -msgstr "" +msgstr "Vonalkód beolvasása" #: templates/js/translated/barcode.js:291 msgid "No URL in response" -msgstr "" +msgstr "Nincs URL a válaszban" #: templates/js/translated/barcode.js:309 msgid "Link Barcode to Stock Item" -msgstr "" +msgstr "Vonalkód hozzárendelése a készlet tételhez" #: templates/js/translated/barcode.js:332 msgid "This will remove the association between this stock item and the barcode" -msgstr "" +msgstr "Ez törli az összerendelést a készlet tétel és a vonalkód között" #: templates/js/translated/barcode.js:338 msgid "Unlink" -msgstr "" +msgstr "Leválasztás" #: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027 msgid "Remove stock item" -msgstr "" +msgstr "Készlet tétel törlése" #: templates/js/translated/barcode.js:439 msgid "Check Stock Items into Location" -msgstr "" +msgstr "Készlet bevételezése az adott helyre" #: templates/js/translated/barcode.js:443 #: templates/js/translated/barcode.js:573 msgid "Check In" -msgstr "" +msgstr "Bevételezés" #: templates/js/translated/barcode.js:485 #: templates/js/translated/barcode.js:612 msgid "Error transferring stock" -msgstr "" +msgstr "Hiba a készlet áthelyezésekor" #: templates/js/translated/barcode.js:507 msgid "Stock Item already scanned" -msgstr "" +msgstr "Készlet tétel már beolvasva" #: templates/js/translated/barcode.js:511 msgid "Stock Item already in this location" -msgstr "" +msgstr "Készlet tétel már ezen a helyen van" #: templates/js/translated/barcode.js:518 msgid "Added stock item" -msgstr "" +msgstr "Hozzáadott készlet tétel" #: templates/js/translated/barcode.js:525 msgid "Barcode does not match Stock Item" -msgstr "" +msgstr "Vonalkód nem egyezik a készlet tétellel" #: templates/js/translated/barcode.js:568 msgid "Check Into Location" -msgstr "" +msgstr "Bevételezés az adott helyre" #: templates/js/translated/barcode.js:633 msgid "Barcode does not match a valid location" -msgstr "" +msgstr "A vonalkód nem egyezik egy ismert hellyel sem" #: templates/js/translated/bom.js:75 msgid "Display row data" @@ -7669,7 +7679,7 @@ msgstr "" #: templates/js/translated/bom.js:750 msgid "Open subassembly" -msgstr "" +msgstr "Alszerelvény megnyitása" #: templates/js/translated/bom.js:822 msgid "Substitutes" @@ -7697,7 +7707,7 @@ msgstr "" #: templates/js/translated/bom.js:957 msgid "Edit substitute parts" -msgstr "" +msgstr "Helyettesítő alkatrészek szerkesztése" #: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138 msgid "Edit BOM Item" @@ -7755,7 +7765,7 @@ msgstr "" #: templates/js/translated/build.js:225 msgid "The Bill of Materials contains trackable parts" -msgstr "" +msgstr "A BOM követésre kötelezett alkatrészeket tartalmaz" #: templates/js/translated/build.js:226 msgid "Build outputs must be generated individually" @@ -7763,7 +7773,7 @@ msgstr "" #: templates/js/translated/build.js:234 msgid "Trackable parts can have serial numbers specified" -msgstr "" +msgstr "A követésre kötelezett alkatrészekhez sorozatszámot lehet rendelni" #: templates/js/translated/build.js:235 msgid "Enter serial numbers to generate multiple single build outputs" @@ -7819,7 +7829,7 @@ msgstr "" #: templates/js/translated/build.js:665 msgid "No build order allocations found" -msgstr "" +msgstr "Nincs gyártási utasításhoz történő foglalás" #: templates/js/translated/build.js:703 templates/js/translated/order.js:1848 msgid "Location not specified" @@ -7832,24 +7842,24 @@ msgstr "" #: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" -msgstr "" +msgstr "Készlet foglalások szerkesztése" #: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" -msgstr "" +msgstr "Készlet foglalások törlése" #: templates/js/translated/build.js:1354 msgid "Edit Allocation" -msgstr "" +msgstr "Foglalás szerkesztése" #: templates/js/translated/build.js:1364 msgid "Remove Allocation" -msgstr "" +msgstr "Foglalás törlése" #: templates/js/translated/build.js:1389 msgid "Substitute parts available" -msgstr "" +msgstr "Vannak helyettesítő alkatrészek" #: templates/js/translated/build.js:1406 msgid "Quantity Per" @@ -7874,12 +7884,12 @@ msgstr "" #: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" -msgstr "" +msgstr "Készlet foglalási mennyiség megadása" #: templates/js/translated/build.js:1629 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" -msgstr "" +msgstr "Kiválasztott alkatrészek" #: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" @@ -7887,11 +7897,11 @@ msgstr "" #: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" -msgstr "" +msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)" #: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" -msgstr "" +msgstr "Készlet foglalás megerősítése" #: templates/js/translated/build.js:1674 msgid "Allocate Stock Items to Build Order" @@ -7899,7 +7909,7 @@ msgstr "" #: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613 msgid "No matching stock locations" -msgstr "" +msgstr "Nincs egyező készlethely" #: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690 msgid "No matching stock items" @@ -7917,7 +7927,7 @@ msgstr "" #: templates/js/translated/build.js:1912 msgid "Build order is overdue" -msgstr "" +msgstr "Gyártási utasítás megkésett" #: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822 msgid "No user information" @@ -7929,7 +7939,7 @@ msgstr "" #: templates/js/translated/build.js:2036 msgid "No parts allocated for" -msgstr "" +msgstr "Nincs lefoglalt alkatrész ehhez" #: templates/js/translated/company.js:65 msgid "Add Manufacturer" @@ -7969,11 +7979,11 @@ msgstr "" #: templates/js/translated/company.js:363 msgid "Parts Supplied" -msgstr "" +msgstr "Beszállított alkatrészek" #: templates/js/translated/company.js:372 msgid "Parts Manufactured" -msgstr "" +msgstr "Gyártott alkatrészek" #: templates/js/translated/company.js:387 msgid "No company information found" @@ -7981,15 +7991,15 @@ msgstr "" #: templates/js/translated/company.js:406 msgid "The following manufacturer parts will be deleted" -msgstr "" +msgstr "A következő gyártói alkatrészek törölve lesznek" #: templates/js/translated/company.js:423 msgid "Delete Manufacturer Parts" -msgstr "" +msgstr "Gyártói alkatrészek törlése" #: templates/js/translated/company.js:480 msgid "No manufacturer parts found" -msgstr "" +msgstr "Nincs gyártói alkatrész" #: templates/js/translated/company.js:500 #: templates/js/translated/company.js:757 templates/js/translated/part.js:517 @@ -8025,7 +8035,7 @@ msgstr "" #: templates/js/translated/company.js:737 msgid "No supplier parts found" -msgstr "" +msgstr "Nincs beszállítói alkatrész" #: templates/js/translated/filters.js:178 #: templates/js/translated/filters.js:429 @@ -8039,7 +8049,7 @@ msgstr "" #: templates/js/translated/filters.js:204 msgid "Select filter" -msgstr "" +msgstr "Szűrők kiválasztása" #: templates/js/translated/filters.js:286 msgid "Reload data" @@ -8047,15 +8057,15 @@ msgstr "" #: templates/js/translated/filters.js:290 msgid "Add new filter" -msgstr "" +msgstr "Új szűrő hozzáadása" #: templates/js/translated/filters.js:293 msgid "Clear all filters" -msgstr "" +msgstr "Összes szűrő törlése" #: templates/js/translated/filters.js:338 msgid "Create filter" -msgstr "" +msgstr "Szűrő létrehozása" #: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 #: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 @@ -8109,7 +8119,7 @@ msgstr "" #: templates/js/translated/forms.js:2491 msgid "Select Columns" -msgstr "" +msgstr "Oszlopok kiválasztása" #: templates/js/translated/helpers.js:19 msgid "YES" @@ -8139,7 +8149,7 @@ msgstr "" #: templates/js/translated/label.js:80 msgid "Select Stock Locations" -msgstr "" +msgstr "Készlethely kiválasztása" #: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" @@ -8186,7 +8196,7 @@ msgstr "" #: templates/js/translated/modals.js:392 msgid "Waiting for server..." -msgstr "" +msgstr "Várakozás a kiszolgálóra..." #: templates/js/translated/modals.js:551 msgid "Show Error Information" @@ -8202,11 +8212,11 @@ msgstr "" #: templates/js/translated/modals.js:937 msgid "Invalid response from server" -msgstr "" +msgstr "Rossz válasz a kiszolgálótól" #: templates/js/translated/modals.js:937 msgid "Form data missing from server response" -msgstr "" +msgstr "Űrlap adat hiányzik a kiszolgálótól kapott válaszban" #: templates/js/translated/modals.js:949 msgid "Error posting form data" @@ -8222,7 +8232,7 @@ msgstr "" #: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" -msgstr "" +msgstr "A kiszolgáló 400-as hibakódot adott vissza" #: templates/js/translated/modals.js:1085 msgid "Error requesting form data" @@ -8287,7 +8297,7 @@ msgstr "" #: templates/js/translated/order.js:206 msgid "Add Customer" -msgstr "" +msgstr "Vevő hozzáadása" #: templates/js/translated/order.js:231 msgid "Create Sales Order" @@ -8339,7 +8349,7 @@ msgstr "" #: templates/js/translated/order.js:815 templates/js/translated/order.js:1230 msgid "Order is overdue" -msgstr "" +msgstr "Rendelés megkésett" #: templates/js/translated/order.js:936 templates/js/translated/order.js:2356 msgid "Edit Line Item" @@ -8384,7 +8394,7 @@ msgstr "" #: templates/js/translated/order.js:1244 msgid "Invalid Customer" -msgstr "" +msgstr "Érvénytelen vevő" #: templates/js/translated/order.js:1322 msgid "Edit shipment" @@ -8428,11 +8438,11 @@ msgstr "" #: templates/js/translated/order.js:1809 msgid "No sales order allocations found" -msgstr "" +msgstr "Nincs vevői rendeléshez történő foglalás" #: templates/js/translated/order.js:1898 msgid "Edit Stock Allocation" -msgstr "" +msgstr "Készlet foglalások szerkesztése" #: templates/js/translated/order.js:1915 msgid "Confirm Delete Operation" @@ -8440,7 +8450,7 @@ msgstr "" #: templates/js/translated/order.js:1916 msgid "Delete Stock Allocation" -msgstr "" +msgstr "Készlet foglalások törlése" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 #: templates/js/translated/stock.js:1560 @@ -8525,7 +8535,7 @@ msgstr "" #: templates/js/translated/part.js:198 msgid "Copy Category Parameters" -msgstr "" +msgstr "Kategória paraméterek másolása" #: templates/js/translated/part.js:199 msgid "Copy parameter templates from selected part category" @@ -8553,7 +8563,7 @@ msgstr "" #: templates/js/translated/part.js:280 msgid "Copy Parameters" -msgstr "" +msgstr "Paraméterek másolása" #: templates/js/translated/part.js:281 msgid "Copy parameter data from original part" @@ -8577,19 +8587,19 @@ msgstr "" #: templates/js/translated/part.js:418 msgid "You are subscribed to notifications for this item" -msgstr "" +msgstr "Értesítések beállítva erre a tételre" #: templates/js/translated/part.js:420 msgid "You have subscribed to notifications for this item" -msgstr "" +msgstr "Értesítések beállítva erre a tételre" #: templates/js/translated/part.js:425 msgid "Subscribe to notifications for this item" -msgstr "" +msgstr "Értesítések kérése erre a tételre" #: templates/js/translated/part.js:427 msgid "You have unsubscribed to notifications for this item" -msgstr "" +msgstr "Értesítések letiltva erre a tételre" #: templates/js/translated/part.js:444 msgid "Validating the BOM will mark each line item as valid" @@ -8617,7 +8627,7 @@ msgstr "" #: templates/js/translated/part.js:525 msgid "Subscribed part" -msgstr "" +msgstr "Értesítésre beállított alkatrész" #: templates/js/translated/part.js:529 msgid "Salable part" @@ -8637,7 +8647,7 @@ msgstr "" #: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363 msgid "No parts found" -msgstr "" +msgstr "Nincs alkatrész" #: templates/js/translated/part.js:1273 msgid "No category" @@ -8651,23 +8661,23 @@ msgstr "" #: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559 #: templates/js/translated/stock.js:2564 msgid "Display as list" -msgstr "" +msgstr "Megjelenítés listaként" #: templates/js/translated/part.js:1403 msgid "Display as grid" -msgstr "" +msgstr "Megjelenítés rácsnézetként" #: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583 msgid "Display as tree" -msgstr "" +msgstr "Megjelenítés fában" #: templates/js/translated/part.js:1642 msgid "Subscribed category" -msgstr "" +msgstr "Értesítésre beállított kategória" #: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627 msgid "Path" -msgstr "" +msgstr "Elérési út" #: templates/js/translated/part.js:1700 msgid "No test templates matching query" @@ -8849,11 +8859,11 @@ msgstr "" #: templates/js/translated/stock.js:527 msgid "Include Sublocations" -msgstr "" +msgstr "Alhelyekkel együtt" #: templates/js/translated/stock.js:528 msgid "Include stock items in sublocations" -msgstr "" +msgstr "Alhelyeken lévő készlettel együtt" #: templates/js/translated/stock.js:637 msgid "Confirm stock assignment" @@ -8861,7 +8871,7 @@ msgstr "" #: templates/js/translated/stock.js:638 msgid "Assign Stock to Customer" -msgstr "" +msgstr "Készlet vevőhöz rendelése" #: templates/js/translated/stock.js:715 msgid "Warning: Merge operation cannot be reversed" @@ -8961,7 +8971,7 @@ msgstr "" #: templates/js/translated/stock.js:1349 msgid "Test Date" -msgstr "" +msgstr "Teszt dátuma" #: templates/js/translated/stock.js:1501 msgid "Edit Test Result" @@ -8973,11 +8983,11 @@ msgstr "" #: templates/js/translated/stock.js:1552 msgid "In production" -msgstr "" +msgstr "Gyártásban" #: templates/js/translated/stock.js:1556 msgid "Installed in Stock Item" -msgstr "" +msgstr "Beépítve készlet tételbe" #: templates/js/translated/stock.js:1564 msgid "Assigned to Sales Order" @@ -8989,7 +8999,7 @@ msgstr "" #: templates/js/translated/stock.js:1728 msgid "Stock item is in production" -msgstr "" +msgstr "Készlet tétel gyártás alatt" #: templates/js/translated/stock.js:1733 msgid "Stock item assigned to sales order" @@ -9038,11 +9048,11 @@ msgstr "" #: templates/js/translated/stock.js:1772 #: templates/js/translated/table_filters.js:188 msgid "Depleted" -msgstr "" +msgstr "Kimerült" #: templates/js/translated/stock.js:1822 msgid "Stocktake" -msgstr "" +msgstr "Leltár" #: templates/js/translated/stock.js:1895 msgid "Supplier part not specified" @@ -9062,7 +9072,7 @@ msgstr "" #: templates/js/translated/stock.js:2069 msgid "locations" -msgstr "" +msgstr "helyek" #: templates/js/translated/stock.js:2071 msgid "Undefined location" @@ -9090,7 +9100,7 @@ msgstr "" #: templates/js/translated/stock.js:2681 msgid "Details" -msgstr "" +msgstr "Részletek" #: templates/js/translated/stock.js:2706 msgid "Location no longer exists" @@ -9102,7 +9112,7 @@ msgstr "" #: templates/js/translated/stock.js:2744 msgid "Customer no longer exists" -msgstr "" +msgstr "Vevő már nem létezik" #: templates/js/translated/stock.js:2762 msgid "Stock item no longer exists" @@ -9118,11 +9128,11 @@ msgstr "" #: templates/js/translated/stock.js:2834 msgid "Edit tracking entry" -msgstr "" +msgstr "Készlettörténet bejegyzés szerkesztése" #: templates/js/translated/stock.js:2835 msgid "Delete tracking entry" -msgstr "" +msgstr "Készlettörténet bejegyzés törlése" #: templates/js/translated/stock.js:2886 msgid "No installed items" @@ -9146,7 +9156,7 @@ msgstr "" #: templates/js/translated/stock.js:2977 msgid "The Stock Item is currently available in stock" -msgstr "" +msgstr "A készlet tétel jelenleg elérhető készleten" #: templates/js/translated/stock.js:2978 msgid "The Stock Item is serialized and does not belong to another item" @@ -9175,22 +9185,22 @@ msgstr "" #: templates/js/translated/table_filters.js:110 #: templates/js/translated/table_filters.js:183 msgid "Include sublocations" -msgstr "" +msgstr "Alhelyekkel együtt" #: templates/js/translated/table_filters.js:111 msgid "Include locations" -msgstr "" +msgstr "Helyekkel együtt" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 #: templates/js/translated/table_filters.js:402 msgid "Include subcategories" -msgstr "" +msgstr "Alkategóriákkal együtt" #: templates/js/translated/table_filters.js:126 #: templates/js/translated/table_filters.js:437 msgid "Subscribed" -msgstr "" +msgstr "Értesítés beállítva" #: templates/js/translated/table_filters.js:136 #: templates/js/translated/table_filters.js:218 @@ -9232,19 +9242,19 @@ msgstr "" #: templates/js/translated/table_filters.js:163 #: templates/js/translated/table_filters.js:374 msgid "Active parts" -msgstr "" +msgstr "Aktív alkatrész" #: templates/js/translated/table_filters.js:164 msgid "Show stock for active parts" -msgstr "" +msgstr "Aktív alkatrészek készletének megjelenítése" #: templates/js/translated/table_filters.js:169 msgid "Part is an assembly" -msgstr "" +msgstr "Az alkatrész egy szerelvény" #: templates/js/translated/table_filters.js:173 msgid "Is allocated" -msgstr "" +msgstr "Lefoglalt" #: templates/js/translated/table_filters.js:174 msgid "Item has been allocated" @@ -9256,31 +9266,31 @@ msgstr "" #: templates/js/translated/table_filters.js:184 msgid "Include stock in sublocations" -msgstr "" +msgstr "Alhelyeken lévő készlettel együtt" #: templates/js/translated/table_filters.js:189 msgid "Show stock items which are depleted" -msgstr "" +msgstr "Kimerült készlet tételek megjelenítése" #: templates/js/translated/table_filters.js:194 msgid "Show items which are in stock" -msgstr "" +msgstr "Készleten lévő tételek megjelenítése" #: templates/js/translated/table_filters.js:198 msgid "In Production" -msgstr "" +msgstr "Gyártásban" #: templates/js/translated/table_filters.js:199 msgid "Show items which are in production" -msgstr "" +msgstr "Gyártásban lévő tételek megjelenítése" #: templates/js/translated/table_filters.js:203 msgid "Include Variants" -msgstr "" +msgstr "Változatokkal együtt" #: templates/js/translated/table_filters.js:204 msgid "Include stock items for variant parts" -msgstr "" +msgstr "Alkatrészváltozatok készletével együtt" #: templates/js/translated/table_filters.js:208 msgid "Installed" @@ -9337,7 +9347,7 @@ msgstr "" #: templates/js/translated/table_filters.js:403 msgid "Include parts in subcategories" -msgstr "" +msgstr "Alkategóriákkal együtt" #: templates/js/translated/table_filters.js:407 msgid "Has IPN" @@ -9349,7 +9359,7 @@ msgstr "" #: templates/js/translated/table_filters.js:413 msgid "Show active parts" -msgstr "" +msgstr "Aktív alkatrészek megjelenítése" #: templates/js/translated/table_filters.js:421 msgid "Stock available" @@ -9365,27 +9375,27 @@ msgstr "" #: templates/js/translated/tables.js:371 msgid "rows per page" -msgstr "" +msgstr "sor oldalanként" #: templates/js/translated/tables.js:376 msgid "Showing all rows" -msgstr "" +msgstr "Összes sor mutatása" #: templates/js/translated/tables.js:378 msgid "Showing" -msgstr "" +msgstr "Látható" #: templates/js/translated/tables.js:378 msgid "to" -msgstr "" +msgstr "-->" #: templates/js/translated/tables.js:378 msgid "of" -msgstr "" +msgstr "-ig" #: templates/js/translated/tables.js:378 msgid "rows" -msgstr "" +msgstr "sorból" #: templates/js/translated/tables.js:382 templates/search_form.html:6 #: templates/search_form.html:7 @@ -9410,7 +9420,7 @@ msgstr "" #: templates/js/translated/tables.js:397 msgid "Columns" -msgstr "" +msgstr "Oszlopok" #: templates/js/translated/tables.js:400 msgid "All" @@ -9426,7 +9436,7 @@ msgstr "" #: templates/navbar.html:114 msgid "Logout" -msgstr "" +msgstr "Kijelentkezés" #: templates/navbar.html:116 msgid "Login" @@ -9434,7 +9444,7 @@ msgstr "" #: templates/navbar.html:136 msgid "About InvenTree" -msgstr "" +msgstr "Verzió információk" #: templates/navbar_demo.html:5 msgid "InvenTree demo mode" @@ -9454,19 +9464,19 @@ msgstr "" #: templates/stats.html:9 msgid "Server" -msgstr "" +msgstr "Kiszolgáló" #: templates/stats.html:13 msgid "Instance Name" -msgstr "" +msgstr "Példány neve" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "Adatbázis" #: templates/stats.html:26 msgid "Server is running in debug mode" -msgstr "" +msgstr "A kiszolgáló hibakeresési módban fut" #: templates/stats.html:33 msgid "Docker Mode" @@ -9474,27 +9484,27 @@ msgstr "" #: templates/stats.html:34 msgid "Server is deployed using docker" -msgstr "" +msgstr "A kiszolgáló docker-ben fut" #: templates/stats.html:39 msgid "Plugin Support" -msgstr "" +msgstr "Plugin Támogatás" #: templates/stats.html:43 msgid "Plugin support enabled" -msgstr "" +msgstr "Plugin támogatás engedélyezve" #: templates/stats.html:45 msgid "Plugin support disabled" -msgstr "" +msgstr "Plugin támogatás letiltva" #: templates/stats.html:52 msgid "Server status" -msgstr "" +msgstr "Kiszolgáló állapota" #: templates/stats.html:55 msgid "Healthy" -msgstr "" +msgstr "Normális" #: templates/stats.html:57 msgid "Issues detected" @@ -9510,11 +9520,11 @@ msgstr "" #: templates/stats.html:75 msgid "Email Settings" -msgstr "" +msgstr "Email beállítások" #: templates/stats.html:78 msgid "Email settings not configured" -msgstr "" +msgstr "Email beállítások hiányoznak" #: templates/stock_table.html:14 msgid "Export Stock Information" @@ -9542,7 +9552,7 @@ msgstr "" #: templates/stock_table.html:50 msgid "Stocktake selected stock items" -msgstr "" +msgstr "Kiválsztott készlet tételek leltározása" #: templates/stock_table.html:51 msgid "Move selected stock items" @@ -9639,3 +9649,4 @@ msgstr "" #: users/models.py:217 msgid "Permission to delete items" msgstr "" + diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 341568fbcc..5e6c0efcde 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "" #: InvenTree/settings.py:662 -msgid "Italian" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:663 -msgid "Japanese" +msgid "Italian" msgstr "" #: InvenTree/settings.py:664 -msgid "Korean" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:665 -msgid "Dutch" +msgid "Korean" msgstr "" #: InvenTree/settings.py:666 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:667 -msgid "Polish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:668 -msgid "Portugese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:669 -msgid "Russian" +msgid "Portugese" msgstr "" #: InvenTree/settings.py:670 -msgid "Swedish" +msgid "Russian" msgstr "" #: InvenTree/settings.py:671 -msgid "Thai" +msgid "Swedish" msgstr "" #: InvenTree/settings.py:672 -msgid "Turkish" +msgid "Thai" msgstr "" #: InvenTree/settings.py:673 -msgid "Vietnamese" +msgid "Turkish" msgstr "" #: InvenTree/settings.py:674 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 537c6a0b92..8ea7f68543 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:03\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "Ebraico" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "Portoghese" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Cinese" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 9950bc4aea..73bd090d9b 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:03\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "" #: InvenTree/settings.py:662 -msgid "Italian" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:663 -msgid "Japanese" +msgid "Italian" msgstr "" #: InvenTree/settings.py:664 -msgid "Korean" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:665 -msgid "Dutch" +msgid "Korean" msgstr "" #: InvenTree/settings.py:666 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:667 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:668 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 1cb8e0cac0..4281283f40 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "히브리어" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "이탈리아어" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "일본어" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "한국어" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "네덜란드어" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "노르웨이어" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "폴란드어" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "포르투갈어" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "러시아어" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "스웨덴어" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "태국어" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "터키어" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "베트남어" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "중국어" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index 84b0bc7bdd..944da93bd0 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "Hebreeuws" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "Portugees" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Chinees" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 4dfa473710..5f6c4c100b 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "Hebraisk" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "Portugesisk" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Kinesisk" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 6f9b3ea0bf..37ec8832d2 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:03\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "Hebrajski" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "Portugalski" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Chiński" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index 1e5441e8c4..4688f8ee02 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "" #: InvenTree/settings.py:662 -msgid "Italian" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:663 -msgid "Japanese" +msgid "Italian" msgstr "" #: InvenTree/settings.py:664 -msgid "Korean" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:665 -msgid "Dutch" +msgid "Korean" msgstr "" #: InvenTree/settings.py:666 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:667 -msgid "Polish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:668 -msgid "Portugese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:669 -msgid "Russian" +msgid "Portugese" msgstr "" #: InvenTree/settings.py:670 -msgid "Swedish" +msgid "Russian" msgstr "" #: InvenTree/settings.py:671 -msgid "Thai" +msgid "Swedish" msgstr "" #: InvenTree/settings.py:672 -msgid "Turkish" +msgid "Thai" msgstr "" #: InvenTree/settings.py:673 -msgid "Vietnamese" +msgid "Turkish" msgstr "" #: InvenTree/settings.py:674 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 14ce2c217d..a330a642f3 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:03\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "Иврит" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "Португальский" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Китайский" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 8aae1b4156..8d895ceecc 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "Hebreiska" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "Italienska" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Japanska" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Koreanska" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Norska" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Polska" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Ryska" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "Svenska" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Thailändska" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Kinesiska" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 2cfd65c5c6..bceeb2c145 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:03\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "" #: InvenTree/settings.py:662 -msgid "Italian" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:663 -msgid "Japanese" +msgid "Italian" msgstr "" #: InvenTree/settings.py:664 -msgid "Korean" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:665 -msgid "Dutch" +msgid "Korean" msgstr "" #: InvenTree/settings.py:666 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:667 -msgid "Polish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:668 -msgid "Portugese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:669 -msgid "Russian" +msgid "Portugese" msgstr "" #: InvenTree/settings.py:670 -msgid "Swedish" +msgid "Russian" msgstr "" #: InvenTree/settings.py:671 -msgid "Thai" +msgid "Swedish" msgstr "" #: InvenTree/settings.py:672 -msgid "Turkish" +msgid "Thai" msgstr "" #: InvenTree/settings.py:673 -msgid "Vietnamese" +msgid "Turkish" msgstr "" #: InvenTree/settings.py:674 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index 0fbee1f4c1..6e08d9a4ea 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:03\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "İbranice" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "Çince" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index b37175d84b..abc8c03391 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "" #: InvenTree/settings.py:662 -msgid "Italian" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:663 -msgid "Japanese" +msgid "Italian" msgstr "" #: InvenTree/settings.py:664 -msgid "Korean" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:665 -msgid "Dutch" +msgid "Korean" msgstr "" #: InvenTree/settings.py:666 -msgid "Norwegian" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:667 -msgid "Polish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:668 -msgid "Portugese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:669 -msgid "Russian" +msgid "Portugese" msgstr "" #: InvenTree/settings.py:670 -msgid "Swedish" +msgid "Russian" msgstr "" #: InvenTree/settings.py:671 -msgid "Thai" +msgid "Swedish" msgstr "" #: InvenTree/settings.py:672 -msgid "Turkish" +msgid "Thai" msgstr "" #: InvenTree/settings.py:673 -msgid "Vietnamese" +msgid "Turkish" msgstr "" #: InvenTree/settings.py:674 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index d9e4448811..544a77fb70 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-20 22:01+0000\n" -"PO-Revision-Date: 2022-02-20 22:02\n" +"POT-Creation-Date: 2022-02-22 01:07+0000\n" +"PO-Revision-Date: 2022-02-22 01:18\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -328,54 +328,58 @@ msgid "Hebrew" msgstr "希伯来语" #: InvenTree/settings.py:662 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:663 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:664 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:665 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:666 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:667 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:668 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:669 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:670 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:671 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:672 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:673 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:674 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:675 msgid "Chinese" msgstr "中文(简体)" From 44008f33e247bb856923d68b2b3fc9e7ff8b7dd3 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 15:40:49 +1100 Subject: [PATCH 19/30] Refactoring Build model functions - Determining if a build order is correctly allocated has become more complex - Complex BOM behaviours (e.g. variants, templates, and substitutes) have made it more difficult! - Recently, a reference to the defining BomItem object was added to the BuildItem model - Now, a simpler way is to check allocation against the parent BomItem - It is much better, but means that a lot of refactoring and testing will be required! --- InvenTree/build/models.py | 101 ++++++------------ InvenTree/build/serializers.py | 4 +- .../build/templates/build/build_base.html | 4 +- InvenTree/build/templates/build/detail.html | 2 +- InvenTree/build/test_build.py | 38 +++---- 5 files changed, 55 insertions(+), 94 deletions(-) diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index 74b75787e7..f37b55876c 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -479,8 +479,6 @@ class Build(MPTTModel, ReferenceIndexingMixin): outputs = self.get_build_outputs(complete=True) - # TODO - Ordering? - return outputs @property @@ -491,8 +489,6 @@ class Build(MPTTModel, ReferenceIndexingMixin): outputs = self.get_build_outputs(complete=False) - # TODO - Order by how "complete" they are? - return outputs @property @@ -563,7 +559,7 @@ class Build(MPTTModel, ReferenceIndexingMixin): if self.remaining > 0: return False - if not self.areUntrackedPartsFullyAllocated(): + if not self.are_untracked_parts_allocated(): return False # No issues! @@ -584,7 +580,7 @@ class Build(MPTTModel, ReferenceIndexingMixin): self.save() # Remove untracked allocated stock - self.subtractUntrackedStock(user) + self.subtract_allocated_stock(user) # Ensure that there are no longer any BuildItem objects # which point to thisFcan Build Order @@ -768,7 +764,7 @@ class Build(MPTTModel, ReferenceIndexingMixin): output.delete() @transaction.atomic - def subtractUntrackedStock(self, user): + def subtract_allocated_stock(self, user): """ Called when the Build is marked as "complete", this function removes the allocated untracked items from stock. @@ -831,7 +827,7 @@ class Build(MPTTModel, ReferenceIndexingMixin): self.save() - def requiredQuantity(self, part, output): + def required_quantity(self, bom_item, output=None): """ Get the quantity of a part required to complete the particular build output. @@ -840,46 +836,41 @@ class Build(MPTTModel, ReferenceIndexingMixin): output - The particular build output (StockItem) """ - # Extract the BOM line item from the database - try: - bom_item = PartModels.BomItem.objects.get(part=self.part.pk, sub_part=part.pk) - quantity = bom_item.quantity - except (PartModels.BomItem.DoesNotExist): - quantity = 0 + quantity = bom_item.quantity if output: - quantity *= output.quantity + quantity *= output.quantity else: quantity *= self.quantity return quantity - def allocatedItems(self, part, output): + def allocated_bom_items(self, bom_item, output=None): """ - Return all BuildItem objects which allocate stock of to + Return all BuildItem objects which allocate stock of to + + Note that the bom_item may allow variants, or direct substitutes, + making things difficult. Args: - part - The part object + bom_item - The BomItem object output - Build output (StockItem). """ - # Remember, if 'variant' stock is allowed to be allocated, it becomes more complicated! - variants = part.get_descendants(include_self=True) - allocations = BuildItem.objects.filter( build=self, - stock_item__part__pk__in=[p.pk for p in variants], + bom_item=bom_item, install_into=output, ) return allocations - def allocatedQuantity(self, part, output): + def allocated_quantity(self, bom_item, output=None): """ Return the total quantity of given part allocated to a given build output. """ - allocations = self.allocatedItems(part, output) + allocations = self.allocated_bom_items(bom_item, output) allocated = allocations.aggregate( q=Coalesce( @@ -891,24 +882,24 @@ class Build(MPTTModel, ReferenceIndexingMixin): return allocated['q'] - def unallocatedQuantity(self, part, output): + def unallocated_quantity(self, bom_item, output=None): """ Return the total unallocated (remaining) quantity of a part against a particular output. """ - required = self.requiredQuantity(part, output) - allocated = self.allocatedQuantity(part, output) + required = self.required_quantity(bom_item, output) + allocated = self.allocated_quantity(bom_item, output) return max(required - allocated, 0) - def isPartFullyAllocated(self, part, output): + def is_bom_item_allocated(self, bom_item, output=None): """ - Returns True if the part has been fully allocated to the particular build output + Test if the supplied BomItem has been fully allocated! """ - return self.unallocatedQuantity(part, output) == 0 + return self.unallocated_quantity(bom_item, output) == 0 - def isFullyAllocated(self, output, verbose=False): + def is_fully_allocated(self, output, verbose=False): """ Returns True if the particular build output is fully allocated. """ @@ -919,53 +910,24 @@ class Build(MPTTModel, ReferenceIndexingMixin): else: bom_items = self.tracked_bom_items - fully_allocated = True - for bom_item in bom_items: - part = bom_item.sub_part - if not self.isPartFullyAllocated(part, output): - fully_allocated = False - - if verbose: - print(f"Part {part} is not fully allocated for output {output}") - else: - break + if not self.is_bom_item_allocated(bom_item, output): + return False # All parts must be fully allocated! - return fully_allocated + return True - def areUntrackedPartsFullyAllocated(self): + def are_untracked_parts_allocated(self): """ Returns True if the un-tracked parts are fully allocated for this BuildOrder """ - return self.isFullyAllocated(None) + return self.is_fully_allocated(None) - def allocatedParts(self, output): + def unallocated_bom_items(self, output): """ - Return a list of parts which have been fully allocated against a particular output - """ - - allocated = [] - - # If output is not specified, we are talking about "untracked" items - if output is None: - bom_items = self.untracked_bom_items - else: - bom_items = self.tracked_bom_items - - for bom_item in bom_items: - part = bom_item.sub_part - - if self.isPartFullyAllocated(part, output): - allocated.append(part) - - return allocated - - def unallocatedParts(self, output): - """ - Return a list of parts which have *not* been fully allocated against a particular output + Return a list of bom items which have *not* been fully allocated against a particular output """ unallocated = [] @@ -977,10 +939,9 @@ class Build(MPTTModel, ReferenceIndexingMixin): bom_items = self.tracked_bom_items for bom_item in bom_items: - part = bom_item.sub_part - if not self.isPartFullyAllocated(part, output): - unallocated.append(part) + if not self.is_bom_item_allocated(bom_item, output): + unallocated.append(bom_item) return unallocated diff --git a/InvenTree/build/serializers.py b/InvenTree/build/serializers.py index e708bf0b3b..0c243a8e70 100644 --- a/InvenTree/build/serializers.py +++ b/InvenTree/build/serializers.py @@ -160,7 +160,7 @@ class BuildOutputSerializer(serializers.Serializer): if to_complete: # The build output must have all tracked parts allocated - if not build.isFullyAllocated(output): + if not build.is_fully_allocated(output): raise ValidationError(_("This build output is not fully allocated")) return output @@ -436,7 +436,7 @@ class BuildCompleteSerializer(serializers.Serializer): build = self.context['build'] - if not build.areUntrackedPartsFullyAllocated() and not value: + if not build.are_untracked_parts_allocated() and not value: raise ValidationError(_('Required stock has not been fully allocated')) return value diff --git a/InvenTree/build/templates/build/build_base.html b/InvenTree/build/templates/build/build_base.html index 7340f1486d..cd7126a801 100644 --- a/InvenTree/build/templates/build/build_base.html +++ b/InvenTree/build/templates/build/build_base.html @@ -125,7 +125,7 @@ src="{% static 'img/blank_image.png' %}" {% trans "Required build quantity has not yet been completed" %} {% endif %} - {% if not build.areUntrackedPartsFullyAllocated %} + {% if not build.are_untracked_parts_allocated %}
{% trans "Stock has not been fully allocated to this Build Order" %}
@@ -234,7 +234,7 @@ src="{% static 'img/blank_image.png' %}" {% else %} completeBuildOrder({{ build.pk }}, { - allocated: {% if build.areUntrackedPartsFullyAllocated %}true{% else %}false{% endif %}, + allocated: {% if build.are_untracked_parts_allocated %}true{% else %}false{% endif %}, completed: {% if build.remaining == 0 %}true{% else %}false{% endif %}, }); {% endif %} diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html index 28760c5316..f85ec9afa6 100644 --- a/InvenTree/build/templates/build/detail.html +++ b/InvenTree/build/templates/build/detail.html @@ -192,7 +192,7 @@
{% if build.has_untracked_bom_items %} {% if build.active %} - {% if build.areUntrackedPartsFullyAllocated %} + {% if build.are_untracked_parts_allocated %}
{% trans "Untracked stock has been fully allocated for this Build Order" %}
diff --git a/InvenTree/build/test_build.py b/InvenTree/build/test_build.py index 1a1f0b115e..e8578f9fbf 100644 --- a/InvenTree/build/test_build.py +++ b/InvenTree/build/test_build.py @@ -147,15 +147,15 @@ class BuildTest(TestCase): # None of the build outputs have been completed for output in self.build.get_build_outputs().all(): - self.assertFalse(self.build.isFullyAllocated(output)) + self.assertFalse(self.build.is_fully_allocated(output)) - self.assertFalse(self.build.isPartFullyAllocated(self.sub_part_1, self.output_1)) - self.assertFalse(self.build.isPartFullyAllocated(self.sub_part_2, self.output_2)) + self.assertFalse(self.build.is_bom_item_allocated(self.sub_part_1, self.output_1)) + self.assertFalse(self.build.is_bom_item_allocated(self.sub_part_2, self.output_2)) - self.assertEqual(self.build.unallocatedQuantity(self.sub_part_1, self.output_1), 15) - self.assertEqual(self.build.unallocatedQuantity(self.sub_part_1, self.output_2), 35) - self.assertEqual(self.build.unallocatedQuantity(self.sub_part_2, self.output_1), 9) - self.assertEqual(self.build.unallocatedQuantity(self.sub_part_2, self.output_2), 21) + self.assertEqual(self.build.unallocated_quantity(self.sub_part_1, self.output_1), 15) + self.assertEqual(self.build.unallocated_quantity(self.sub_part_1, self.output_2), 35) + self.assertEqual(self.build.unallocated_quantity(self.sub_part_2, self.output_1), 9) + self.assertEqual(self.build.unallocated_quantity(self.sub_part_2, self.output_2), 21) self.assertFalse(self.build.is_complete) @@ -226,7 +226,7 @@ class BuildTest(TestCase): } ) - self.assertTrue(self.build.isFullyAllocated(self.output_1)) + self.assertTrue(self.build.is_fully_allocated(self.output_1)) # Partially allocate tracked stock against build output 2 self.allocate_stock( @@ -236,7 +236,7 @@ class BuildTest(TestCase): } ) - self.assertFalse(self.build.isFullyAllocated(self.output_2)) + self.assertFalse(self.build.is_fully_allocated(self.output_2)) # Partially allocate untracked stock against build self.allocate_stock( @@ -247,9 +247,9 @@ class BuildTest(TestCase): } ) - self.assertFalse(self.build.isFullyAllocated(None, verbose=True)) + self.assertFalse(self.build.is_fully_allocated(None, verbose=True)) - unallocated = self.build.unallocatedParts(None) + unallocated = self.build.unallocated_bom_items(None) self.assertEqual(len(unallocated), 2) @@ -260,19 +260,19 @@ class BuildTest(TestCase): } ) - self.assertFalse(self.build.isFullyAllocated(None, verbose=True)) + self.assertFalse(self.build.is_fully_allocated(None, verbose=True)) - unallocated = self.build.unallocatedParts(None) + unallocated = self.build.unallocated_bom_items(None) self.assertEqual(len(unallocated), 1) self.build.unallocateStock() - unallocated = self.build.unallocatedParts(None) + unallocated = self.build.unallocated_bom_items(None) self.assertEqual(len(unallocated), 2) - self.assertFalse(self.build.areUntrackedPartsFullyAllocated()) + self.assertFalse(self.build.are_untracked_parts_allocated()) # Now we "fully" allocate the untracked untracked items self.allocate_stock( @@ -283,7 +283,7 @@ class BuildTest(TestCase): } ) - self.assertTrue(self.build.areUntrackedPartsFullyAllocated()) + self.assertTrue(self.build.are_untracked_parts_allocated()) def test_cancel(self): """ @@ -331,9 +331,9 @@ class BuildTest(TestCase): } ) - self.assertTrue(self.build.isFullyAllocated(None, verbose=True)) - self.assertTrue(self.build.isFullyAllocated(self.output_1)) - self.assertTrue(self.build.isFullyAllocated(self.output_2)) + self.assertTrue(self.build.is_fully_allocated(None, verbose=True)) + self.assertTrue(self.build.is_fully_allocated(self.output_1)) + self.assertTrue(self.build.is_fully_allocated(self.output_2)) self.build.complete_build_output(self.output_1, None) From ab82f07ef12de00976763c3890e3740d6756175b Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 15:41:10 +1100 Subject: [PATCH 20/30] Bug fix for BuildOutputComplete serializer - Actually use the provided "location" value! --- InvenTree/build/serializers.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/InvenTree/build/serializers.py b/InvenTree/build/serializers.py index 0c243a8e70..0a8964ee82 100644 --- a/InvenTree/build/serializers.py +++ b/InvenTree/build/serializers.py @@ -404,6 +404,10 @@ class BuildOutputCompleteSerializer(serializers.Serializer): data = self.validated_data + location = data['location'] + status = data['status'] + notes = data.get('notes', '') + outputs = data.get('outputs', []) # Mark the specified build outputs as "complete" @@ -415,8 +419,9 @@ class BuildOutputCompleteSerializer(serializers.Serializer): build.complete_build_output( output, request.user, - status=data['status'], - notes=data.get('notes', '') + location=location, + status=status, + notes=notes, ) From 3dde0dbb2b1e53b47118a30b7bee32fac56c6ae1 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 15:43:45 +1100 Subject: [PATCH 21/30] PEP fixes --- InvenTree/build/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index f37b55876c..e48ff35899 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -839,7 +839,7 @@ class Build(MPTTModel, ReferenceIndexingMixin): quantity = bom_item.quantity if output: - quantity *= output.quantity + quantity *= output.quantity else: quantity *= self.quantity From bb164ed72a4775f51e4d301c4ea7f4d9f72acd53 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 15:47:07 +1100 Subject: [PATCH 22/30] Remove old unused functions --- InvenTree/build/models.py | 53 +-------------------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index e48ff35899..cbf55dc265 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -899,7 +899,7 @@ class Build(MPTTModel, ReferenceIndexingMixin): return self.unallocated_quantity(bom_item, output) == 0 - def is_fully_allocated(self, output, verbose=False): + def is_fully_allocated(self, output): """ Returns True if the particular build output is fully allocated. """ @@ -969,57 +969,6 @@ class Build(MPTTModel, ReferenceIndexingMixin): return parts - def availableStockItems(self, part, output): - """ - Returns stock items which are available for allocation to this build. - - Args: - part - Part object - output - The particular build output - """ - - # Grab initial query for items which are "in stock" and match the part - items = StockModels.StockItem.objects.filter( - StockModels.StockItem.IN_STOCK_FILTER - ) - - # Check if variants are allowed for this part - try: - bom_item = PartModels.BomItem.objects.get(part=self.part, sub_part=part) - allow_part_variants = bom_item.allow_variants - except PartModels.BomItem.DoesNotExist: - allow_part_variants = False - - if allow_part_variants: - parts = part.get_descendants(include_self=True) - items = items.filter(part__pk__in=[p.pk for p in parts]) - - else: - items = items.filter(part=part) - - # Exclude any items which have already been allocated - allocated = BuildItem.objects.filter( - build=self, - stock_item__part=part, - install_into=output, - ) - - items = items.exclude( - id__in=[item.stock_item.id for item in allocated.all()] - ) - - # Limit query to stock items which are "downstream" of the source location - if self.take_from is not None: - items = items.filter( - location__in=[loc for loc in self.take_from.getUniqueChildren()] - ) - - # Exclude expired stock items - if not common.models.InvenTreeSetting.get_setting('STOCK_ALLOW_EXPIRED_BUILD'): - items = items.exclude(StockModels.StockItem.EXPIRED_FILTER) - - return items - @property def is_active(self): """ Is this build active? An active build is either: From 9e3406efc9368a94685a944d47e7dda5dcd30f76 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 15:56:09 +1100 Subject: [PATCH 23/30] Add stock tracking code to indicate stock has been consumed by a build order --- InvenTree/InvenTree/status_codes.py | 2 ++ InvenTree/build/models.py | 13 +++++++++++-- InvenTree/stock/models.py | 4 ++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/InvenTree/InvenTree/status_codes.py b/InvenTree/InvenTree/status_codes.py index c8917d679b..ffe22039c9 100644 --- a/InvenTree/InvenTree/status_codes.py +++ b/InvenTree/InvenTree/status_codes.py @@ -258,6 +258,7 @@ class StockHistoryCode(StatusCode): # Build order codes BUILD_OUTPUT_CREATED = 50 BUILD_OUTPUT_COMPLETED = 55 + BUILD_CONSUMED = 57 # Sales order codes @@ -298,6 +299,7 @@ class StockHistoryCode(StatusCode): BUILD_OUTPUT_CREATED: _('Build order output created'), BUILD_OUTPUT_COMPLETED: _('Build order output completed'), + BUILD_CONSUMED: _('Consumed by build order'), RECEIVED_AGAINST_PURCHASE_ORDER: _('Received against purchase order') diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index cbf55dc265..443998ca11 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -1167,7 +1167,12 @@ class BuildItem(models.Model): if item.part.trackable: # Split the allocated stock if there are more available than allocated if item.quantity > self.quantity: - item = item.splitStock(self.quantity, None, user) + item = item.splitStock( + self.quantity, + None, + user, + code=StockHistoryCode.BUILD_CONSUMED, + ) # Make sure we are pointing to the new item self.stock_item = item @@ -1178,7 +1183,11 @@ class BuildItem(models.Model): item.save() else: # Simply remove the items from stock - item.take_stock(self.quantity, user) + item.take_stock( + self.quantity, + user, + code=StockHistoryCode.BUILD_CONSUMED + ) def getStockItemThumbnail(self): """ diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index 158d0a2640..45f3a40a4d 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -1530,7 +1530,7 @@ class StockItem(MPTTModel): return True @transaction.atomic - def take_stock(self, quantity, user, notes=''): + def take_stock(self, quantity, user, notes='', code=StockHistoryCode.STOCK_REMOVE): """ Remove items from stock """ @@ -1550,7 +1550,7 @@ class StockItem(MPTTModel): if self.updateQuantity(self.quantity - quantity): self.add_tracking_entry( - StockHistoryCode.STOCK_REMOVE, + code, user, notes=notes, deltas={ From ef9c6e9fe01b95034e2fde99906028bfb4f8d4ab Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 15:56:40 +1100 Subject: [PATCH 24/30] Bug fix --- InvenTree/stock/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index 45f3a40a4d..eaae691641 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -31,7 +31,6 @@ from datetime import datetime, timedelta from InvenTree import helpers import InvenTree.tasks -import common.models import report.models import label.models @@ -1311,6 +1310,7 @@ class StockItem(MPTTModel): """ notes = kwargs.get('notes', '') + code = kwargs.get('code', StockHistoryCode.SPLIT_FROM_PARENT) # Do not split a serialized part if self.serialized: @@ -1352,7 +1352,7 @@ class StockItem(MPTTModel): # Add a new tracking item for the new stock item new_stock.add_tracking_entry( - StockHistoryCode.SPLIT_FROM_PARENT, + code, user, notes=notes, deltas={ From fea6091e42ad57c29f28e228a2e64f2ebceaf640 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 15:57:30 +1100 Subject: [PATCH 25/30] Fix incorrect inputs --- InvenTree/build/models.py | 2 -- InvenTree/stock/models.py | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index 443998ca11..095a8cf70c 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -30,8 +30,6 @@ from InvenTree.helpers import increment, getSetting, normalize, MakeBarcode from InvenTree.models import InvenTreeAttachment, ReferenceIndexingMixin from InvenTree.validators import validate_build_order_reference -import common.models - import InvenTree.fields import InvenTree.helpers import InvenTree.tasks diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index eaae691641..42cc5b9f7a 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -31,6 +31,7 @@ from datetime import datetime, timedelta from InvenTree import helpers import InvenTree.tasks +import common.models import report.models import label.models From 88bb0f05e94c4bafd19061d315af168d913cd845 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 16:00:00 +1100 Subject: [PATCH 26/30] URL fixes --- InvenTree/templates/js/translated/stock.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js index 10b1b71073..2d84f11e4a 100644 --- a/InvenTree/templates/js/translated/stock.js +++ b/InvenTree/templates/js/translated/stock.js @@ -1554,11 +1554,11 @@ function locationDetail(row, showLink=true) { } else if (row.belongs_to) { // StockItem is installed inside a different StockItem text = `{% trans "Installed in Stock Item" %} ${row.belongs_to}`; - url = `/stock/item/${row.belongs_to}/installed/`; + url = `/stock/item/${row.belongs_to}/?display=installed-items`; } else if (row.customer) { // StockItem has been assigned to a customer text = '{% trans "Shipped to customer" %}'; - url = `/company/${row.customer}/assigned-stock/`; + url = `/company/${row.customer}/?display=assigned-stock`; } else if (row.sales_order) { // StockItem has been assigned to a sales order text = '{% trans "Assigned to Sales Order" %}'; From 6bdac076d7df7ff7dcd776e4ab30fd4651422892 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 16:03:44 +1100 Subject: [PATCH 27/30] Adds a checkmark to indicate that a stock item has passed all required tests --- InvenTree/stock/templates/stock/item_base.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index 7692d632f0..9979468357 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -409,7 +409,14 @@ {% trans "Tests" %} - {{ item.requiredTestStatus.passed }} / {{ item.requiredTestStatus.total }} + + {{ item.requiredTestStatus.passed }} / {{ item.requiredTestStatus.total }} + {% if item.passedAllRequiredTests %} + + {% else %} + + {% endif %} + {% endif %} {% if item.owner %} From d9e1302eaf2d90e066f45e8aeae9c55b765f6e7b Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 16:42:35 +1100 Subject: [PATCH 28/30] Fixes for unit testing --- InvenTree/build/test_build.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/InvenTree/build/test_build.py b/InvenTree/build/test_build.py index e8578f9fbf..ab3a1a8901 100644 --- a/InvenTree/build/test_build.py +++ b/InvenTree/build/test_build.py @@ -247,7 +247,7 @@ class BuildTest(TestCase): } ) - self.assertFalse(self.build.is_fully_allocated(None, verbose=True)) + self.assertFalse(self.build.is_fully_allocated(None)) unallocated = self.build.unallocated_bom_items(None) @@ -260,7 +260,7 @@ class BuildTest(TestCase): } ) - self.assertFalse(self.build.is_fully_allocated(None, verbose=True)) + self.assertFalse(self.build.is_fully_allocated(None)) unallocated = self.build.unallocated_bom_items(None) @@ -331,7 +331,7 @@ class BuildTest(TestCase): } ) - self.assertTrue(self.build.is_fully_allocated(None, verbose=True)) + self.assertTrue(self.build.is_fully_allocated(None)) self.assertTrue(self.build.is_fully_allocated(self.output_1)) self.assertTrue(self.build.is_fully_allocated(self.output_2)) From baab9557561b2405e10ceca1cc73d839428efbe2 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 17:17:34 +1100 Subject: [PATCH 29/30] Further fixes for unit tests --- InvenTree/build/test_build.py | 18 +++++++++--------- .../part/migrations/0056_auto_20201110_1125.py | 7 ++++++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/InvenTree/build/test_build.py b/InvenTree/build/test_build.py index ab3a1a8901..116c705f61 100644 --- a/InvenTree/build/test_build.py +++ b/InvenTree/build/test_build.py @@ -62,20 +62,20 @@ class BuildTest(TestCase): ) # Create BOM item links for the parts - BomItem.objects.create( + self.bom_item_1 = BomItem.objects.create( part=self.assembly, sub_part=self.sub_part_1, quantity=5 ) - BomItem.objects.create( + self.bom_item_2 = BomItem.objects.create( part=self.assembly, sub_part=self.sub_part_2, quantity=3 ) # sub_part_3 is trackable! - BomItem.objects.create( + self.bom_item_3 = BomItem.objects.create( part=self.assembly, sub_part=self.sub_part_3, quantity=2 @@ -149,13 +149,13 @@ class BuildTest(TestCase): for output in self.build.get_build_outputs().all(): self.assertFalse(self.build.is_fully_allocated(output)) - self.assertFalse(self.build.is_bom_item_allocated(self.sub_part_1, self.output_1)) - self.assertFalse(self.build.is_bom_item_allocated(self.sub_part_2, self.output_2)) + self.assertFalse(self.build.is_bom_item_allocated(self.bom_item_1, self.output_1)) + self.assertFalse(self.build.is_bom_item_allocated(self.bom_item_2, self.output_2)) - self.assertEqual(self.build.unallocated_quantity(self.sub_part_1, self.output_1), 15) - self.assertEqual(self.build.unallocated_quantity(self.sub_part_1, self.output_2), 35) - self.assertEqual(self.build.unallocated_quantity(self.sub_part_2, self.output_1), 9) - self.assertEqual(self.build.unallocated_quantity(self.sub_part_2, self.output_2), 21) + self.assertEqual(self.build.unallocated_quantity(self.bom_item_1, self.output_1), 15) + self.assertEqual(self.build.unallocated_quantity(self.bom_item_1, self.output_2), 35) + self.assertEqual(self.build.unallocated_quantity(self.bom_item_2, self.output_1), 9) + self.assertEqual(self.build.unallocated_quantity(self.bom_item_2, self.output_2), 21) self.assertFalse(self.build.is_complete) diff --git a/InvenTree/part/migrations/0056_auto_20201110_1125.py b/InvenTree/part/migrations/0056_auto_20201110_1125.py index e78482db76..efb36b1812 100644 --- a/InvenTree/part/migrations/0056_auto_20201110_1125.py +++ b/InvenTree/part/migrations/0056_auto_20201110_1125.py @@ -1,5 +1,7 @@ # Generated by Django 3.0.7 on 2020-11-10 11:25 +import logging + from django.db import migrations from moneyed import CURRENCIES @@ -7,6 +9,9 @@ from django.db import migrations, connection from company.models import SupplierPriceBreak +logger = logging.getLogger('inventree') + + def migrate_currencies(apps, schema_editor): """ Migrate from the 'old' method of handling currencies, @@ -19,7 +24,7 @@ def migrate_currencies(apps, schema_editor): for the SupplierPriceBreak model, to a new django-money compatible currency. """ - print("Updating currency references for SupplierPriceBreak model...") + logger.info("Updating currency references for SupplierPriceBreak model...") # A list of available currency codes currency_codes = CURRENCIES.keys() From fe4d06313568d5254be65a8d5ab58d5bebe6e9e1 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 25 Feb 2022 17:19:39 +1100 Subject: [PATCH 30/30] Change some prints to log messages --- InvenTree/users/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/InvenTree/users/models.py b/InvenTree/users/models.py index a95fd21385..c593fb49f3 100644 --- a/InvenTree/users/models.py +++ b/InvenTree/users/models.py @@ -451,7 +451,7 @@ def update_group_roles(group, debug=False): group.permissions.add(permission) if debug: # pragma: no cover - print(f"Adding permission {perm} to group {group.name}") + logger.info(f"Adding permission {perm} to group {group.name}") # Remove any extra permissions from the group for perm in permissions_to_delete: @@ -466,7 +466,7 @@ def update_group_roles(group, debug=False): group.permissions.remove(permission) if debug: # pragma: no cover - print(f"Removing permission {perm} from group {group.name}") + logger.info(f"Removing permission {perm} from group {group.name}") # Enable all action permissions for certain children models # if parent model has 'change' permission @@ -488,7 +488,7 @@ def update_group_roles(group, debug=False): permission = get_permission_object(child_perm) if permission: group.permissions.add(permission) - print(f"Adding permission {child_perm} to group {group.name}") + logger.info(f"Adding permission {child_perm} to group {group.name}") @receiver(post_save, sender=Group, dispatch_uid='create_missing_rule_sets')