From 68d182d67b37559d3391f1f84a77fd5b70e835fb Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 20 Feb 2022 04:23:19 +0100 Subject: [PATCH 1/7] 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 2/7] 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 3/7] 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 4/7] 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 5/7] 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 6/7] 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 7/7] 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 "删除项目权限"