From 61481b4eb00111a290e38ac8b743e1e1cce537ad Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 18 May 2023 20:51:44 +1000 Subject: [PATCH] New Crowdin updates (#4842) * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- InvenTree/locale/cs/LC_MESSAGES/django.po | 38 +- InvenTree/locale/da/LC_MESSAGES/django.po | 38 +- InvenTree/locale/de/LC_MESSAGES/django.po | 38 +- InvenTree/locale/el/LC_MESSAGES/django.po | 48 +- InvenTree/locale/en/LC_MESSAGES/django.po | 1935 ++++++++-------- InvenTree/locale/es/LC_MESSAGES/django.po | 38 +- InvenTree/locale/es_MX/LC_MESSAGES/django.po | 1935 ++++++++-------- InvenTree/locale/fa/LC_MESSAGES/django.po | 38 +- InvenTree/locale/fr/LC_MESSAGES/django.po | 38 +- InvenTree/locale/he/LC_MESSAGES/django.po | 38 +- InvenTree/locale/hu/LC_MESSAGES/django.po | 38 +- InvenTree/locale/id/LC_MESSAGES/django.po | 38 +- InvenTree/locale/it/LC_MESSAGES/django.po | 38 +- InvenTree/locale/ja/LC_MESSAGES/django.po | 38 +- InvenTree/locale/ko/LC_MESSAGES/django.po | 38 +- InvenTree/locale/nl/LC_MESSAGES/django.po | 38 +- InvenTree/locale/no/LC_MESSAGES/django.po | 38 +- InvenTree/locale/pl/LC_MESSAGES/django.po | 38 +- InvenTree/locale/pt/LC_MESSAGES/django.po | 38 +- InvenTree/locale/pt_br/LC_MESSAGES/django.po | 1935 ++++++++-------- InvenTree/locale/ru/LC_MESSAGES/django.po | 38 +- InvenTree/locale/sl/LC_MESSAGES/django.po | 38 +- InvenTree/locale/sv/LC_MESSAGES/django.po | 38 +- InvenTree/locale/th/LC_MESSAGES/django.po | 38 +- InvenTree/locale/tr/LC_MESSAGES/django.po | 38 +- InvenTree/locale/vi/LC_MESSAGES/django.po | 38 +- InvenTree/locale/zh/LC_MESSAGES/django.po | 38 +- .../locale/zh_Hans/LC_MESSAGES/django.po | 1949 +++++++++-------- 28 files changed, 4444 insertions(+), 4232 deletions(-) diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po index 609946e247..3adde81510 100644 --- a/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:15\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -105,75 +105,75 @@ msgstr "Zadaná primární e-mailová adresa je neplatná." msgid "The provided email domain is not approved." msgstr "Zadaná e-mailová doména není povolena." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Chyba spojení" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Server odpověděl s neplatným stavovým kódem" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Došlo k výjimce" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Server odpověděl s neplatnou hodnotou Content-Length" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Velikost obrázku je příliš velká" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Stahování obrázku překročilo maximální velikost" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Vzdálený server vrátil prázdnou odpověď" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Zadaná URL adresa není platný soubor obrázku" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Nevyplněné výrobní číslo" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Duplicitní výrobní číslo" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Neplatný rozsah skupiny: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Rozsah skupiny {g} překračuje povolené množství ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Neplatná sekvence skupiny: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Nenalezena žádná výrobní čísla" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Počet jedinečných sériových čísel ({s}) musí odpovídat množství ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Odstranit HTML tagy z této hodnoty" diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po index ee7eb82157..7a2aab1451 100644 --- a/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:15\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -105,75 +105,75 @@ msgstr "Den indtastede email adresse er ikke gyldig." msgid "The provided email domain is not approved." msgstr "Det angivne e-mail domæne er ikke godkendt." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Forbindelsesfejl" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Serveren svarede med ugyldig statuskode" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Der opstod en fejl" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarede med ugyldig Content-Length værdi" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Billedstørrelsen er for stor" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Billeddownload overskred maksimumstørrelsen" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Fjernserver returnerede tomt svar" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Angivet URL er ikke en gyldig billedfil" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Ugyldigt antal angivet" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Serienummer streng er tom" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Duplikeret serienummer" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ugyldigt gruppe-interval: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Gruppeinterval {g} overstiger det tilladte antal ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ugyldig gruppesekvens: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Ingen serienumre fundet" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Antal unikke serienumre ({s}) skal matche antal ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tags fra denne værdi" diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 2bce39f5f9..354eda1ce0 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:15\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -105,75 +105,75 @@ msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig." msgid "The provided email domain is not approved." msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Verbindungsfehler" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Server antwortete mit ungültigem Statuscode" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Ausnahme aufgetreten" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Bild ist zu groß" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Bilddownload überschreitet maximale Größe" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Remote-Server gab leere Antwort zurück" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Duplizierter Seriennummer" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ungültiger Gruppenbereich: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Gruppenbereich {g} überschreitet die zulässige Menge ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ungültige Gruppensequenz: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Entferne HTML-Tags von diesem Wert" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 761ae6c53b..af738d9bf4 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:15\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -23,7 +23,7 @@ msgstr "Το API endpoint δε βρέθηκε" #: InvenTree/api.py:299 msgid "User does not have permission to view this model" -msgstr "" +msgstr "Δεν έχετε δικαιώματα να το δείτε αυτό" #: InvenTree/exceptions.py:90 msgid "Error details can be found in the admin panel" @@ -99,81 +99,81 @@ msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κ #: InvenTree/forms.py:230 InvenTree/forms.py:236 msgid "The provided primary email address is not valid." -msgstr "" +msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη." #: InvenTree/forms.py:242 msgid "The provided email domain is not approved." -msgstr "" +msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Σφάλμα σύνδεσης" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Προέκυψε σφάλμα" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\"" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Μη έγκυρη ποσότητα" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Κενό σειριακό αριθμό συμβολοσειράς" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" -msgstr "" +msgstr "Διπλότυπο serial number" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Μη έγκυρο εύρος ομάδας: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" -msgstr "" +msgstr "Το εύρος της ομάδας {g} υπερβαίνει την επιτρεπόμενη ποσότητα ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Μη έγκυρη ακολουθία ομάδας: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Δεν βρέθηκαν σειριακοί αριθμοί" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ({s}) πρέπει να αντιστοιχεί στην ποσότητα ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 4d265c6f0f..5d79908a03 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-14 09:15+0000\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,25 +35,25 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:204 InvenTree/models.py:764 build/serializers.py:387 -#: build/serializers.py:464 build/templates/build/sidebar.html:21 -#: company/models.py:556 company/templates/company/sidebar.html:35 +#: build/serializers.py:464 build/templates/build/sidebar.html:23 +#: company/models.py:557 company/templates/company/sidebar.html:35 #: order/models.py:1086 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:2986 part/templates/part/part_sidebar.html:63 +#: part/models.py:2987 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2133 stock/models.py:2241 -#: stock/serializers.py:341 stock/serializers.py:474 stock/serializers.py:555 -#: stock/serializers.py:838 stock/serializers.py:937 stock/serializers.py:1069 +#: stock/admin.py:121 stock/models.py:2157 stock/models.py:2265 +#: stock/serializers.py:342 stock/serializers.py:475 stock/serializers.py:556 +#: stock/serializers.py:839 stock/serializers.py:938 stock/serializers.py:1070 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:130 templates/js/translated/bom.js:1220 -#: templates/js/translated/company.js:1272 templates/js/translated/order.js:322 +#: templates/js/translated/company.js:1272 templates/js/translated/order.js:329 #: templates/js/translated/part.js:1020 #: templates/js/translated/purchase_order.js:2127 #: templates/js/translated/return_order.js:740 -#: templates/js/translated/sales_order.js:1003 -#: templates/js/translated/sales_order.js:1910 -#: templates/js/translated/stock.js:1424 templates/js/translated/stock.js:2125 +#: templates/js/translated/sales_order.js:1022 +#: templates/js/translated/sales_order.js:1929 +#: templates/js/translated/stock.js:1424 templates/js/translated/stock.js:2128 msgid "Notes" msgstr "" @@ -106,75 +106,75 @@ msgstr "" msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" @@ -222,7 +222,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:484 stock/models.py:2235 +#: InvenTree/models.py:484 stock/models.py:2259 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -233,23 +233,23 @@ msgid "Select file to attach" msgstr "" #: InvenTree/models.py:491 common/models.py:2671 company/models.py:130 -#: company/models.py:304 company/models.py:543 order/models.py:232 -#: order/models.py:1090 order/models.py:1438 part/admin.py:39 -#: part/models.py:897 part/templates/part/part_scheduling.html:11 +#: company/models.py:304 company/models.py:544 order/models.py:232 +#: order/models.py:1090 order/models.py:1450 part/admin.py:39 +#: part/models.py:898 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:120 templates/js/translated/company.js:962 -#: templates/js/translated/company.js:1261 templates/js/translated/order.js:326 +#: templates/js/translated/company.js:1261 templates/js/translated/order.js:333 #: templates/js/translated/part.js:1957 #: templates/js/translated/purchase_order.js:1967 #: templates/js/translated/purchase_order.js:2131 #: templates/js/translated/return_order.js:744 -#: templates/js/translated/sales_order.js:992 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/sales_order.js:1011 +#: templates/js/translated/sales_order.js:1934 msgid "Link" msgstr "" -#: InvenTree/models.py:492 build/models.py:290 part/models.py:898 -#: stock/models.py:734 +#: InvenTree/models.py:492 build/models.py:290 part/models.py:899 +#: stock/models.py:735 msgid "Link to external URL" msgstr "" @@ -264,11 +264,11 @@ msgstr "" #: InvenTree/models.py:501 InvenTree/models.py:502 common/models.py:2120 #: common/models.py:2121 common/models.py:2344 common/models.py:2345 -#: common/models.py:2601 common/models.py:2602 part/models.py:2994 -#: part/models.py:3082 part/models.py:3161 part/models.py:3181 +#: common/models.py:2601 common/models.py:2602 part/models.py:2995 +#: part/models.py:3083 part/models.py:3162 part/models.py:3182 #: plugin/models.py:221 plugin/models.py:222 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:2734 +#: templates/js/translated/stock.js:2737 msgid "User" msgstr "" @@ -310,8 +310,8 @@ msgid "Invalid choice" msgstr "" #: InvenTree/models.py:646 InvenTree/models.py:647 common/models.py:2330 -#: company/models.py:388 label/models.py:102 part/models.py:843 -#: part/models.py:3329 plugin/models.py:41 report/models.py:159 +#: company/models.py:388 label/models.py:102 part/models.py:844 +#: part/models.py:3330 plugin/models.py:41 report/models.py:159 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:59 @@ -323,18 +323,18 @@ msgstr "" #: templates/js/translated/company.js:856 #: templates/js/translated/company.js:1056 templates/js/translated/part.js:1126 #: templates/js/translated/part.js:1282 templates/js/translated/part.js:2340 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/stock.js:2428 msgid "Name" msgstr "" #: InvenTree/models.py:653 build/models.py:163 #: build/templates/build/detail.html:24 common/models.py:110 -#: company/models.py:310 company/models.py:549 +#: company/models.py:310 company/models.py:550 #: company/templates/company/company_base.html:72 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:109 -#: order/models.py:228 part/admin.py:194 part/admin.py:276 part/models.py:865 -#: part/models.py:3338 part/templates/part/category.html:81 +#: order/models.py:228 order/models.py:1114 part/admin.py:194 part/admin.py:276 +#: part/models.py:866 part/models.py:3339 part/templates/part/category.html:81 #: part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:172 #: report/models.py:586 report/models.py:630 @@ -345,18 +345,19 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:75 #: templates/InvenTree/settings/settings_staff_js.html:333 #: templates/js/translated/bom.js:602 templates/js/translated/bom.js:903 -#: templates/js/translated/build.js:2794 templates/js/translated/company.js:496 +#: templates/js/translated/build.js:2798 templates/js/translated/company.js:496 #: templates/js/translated/company.js:973 -#: templates/js/translated/company.js:1236 templates/js/translated/part.js:1178 -#: templates/js/translated/part.js:1620 templates/js/translated/part.js:1894 -#: templates/js/translated/part.js:2376 templates/js/translated/part.js:2467 +#: templates/js/translated/company.js:1236 templates/js/translated/order.js:280 +#: templates/js/translated/part.js:1178 templates/js/translated/part.js:1620 +#: templates/js/translated/part.js:1894 templates/js/translated/part.js:2376 +#: templates/js/translated/part.js:2467 #: templates/js/translated/purchase_order.js:1625 #: templates/js/translated/purchase_order.js:1771 #: templates/js/translated/purchase_order.js:1949 #: templates/js/translated/return_order.js:282 -#: templates/js/translated/sales_order.js:750 -#: templates/js/translated/stock.js:1403 templates/js/translated/stock.js:1778 -#: templates/js/translated/stock.js:2457 templates/js/translated/stock.js:2529 +#: templates/js/translated/sales_order.js:757 +#: templates/js/translated/stock.js:1403 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2460 templates/js/translated/stock.js:2532 msgid "Description" msgstr "" @@ -369,7 +370,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:669 InvenTree/models.py:670 -#: templates/js/translated/part.js:2385 templates/js/translated/stock.js:2466 +#: templates/js/translated/part.js:2385 templates/js/translated/stock.js:2469 msgid "Path" msgstr "" @@ -405,12 +406,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3698 +#: InvenTree/serializers.py:60 part/models.py:3699 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:90 company/models.py:152 -#: company/templates/company/company_base.html:107 part/models.py:2833 +#: company/templates/company/company_base.html:107 part/models.py:2834 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -633,10 +634,10 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:183 order/models.py:1323 -#: templates/js/translated/sales_order.js:1457 -#: templates/js/translated/sales_order.js:1581 -#: templates/js/translated/sales_order.js:1885 +#: InvenTree/status_codes.py:183 order/models.py:1329 +#: templates/js/translated/sales_order.js:1476 +#: templates/js/translated/sales_order.js:1600 +#: templates/js/translated/sales_order.js:1904 msgid "Shipped" msgstr "" @@ -724,7 +725,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:331 templates/js/translated/stock.js:2204 +#: InvenTree/status_codes.py:331 templates/js/translated/stock.js:2207 msgid "Merged stock items" msgstr "" @@ -752,7 +753,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: InvenTree/status_codes.py:341 +#: InvenTree/status_codes.py:341 templates/js/translated/stock.js:1640 msgid "Consumed by build order" msgstr "" @@ -808,11 +809,11 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:409 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:409 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:421 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:421 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" @@ -841,7 +842,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:884 templates/js/translated/stock.js:2590 +#: templates/js/translated/build.js:888 templates/js/translated/stock.js:2593 msgid "Build Order" msgstr "" @@ -849,7 +850,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:119 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:245 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:244 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/search.js:216 users/models.py:42 @@ -865,18 +866,18 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:355 order/models.py:762 -#: order/models.py:1084 order/models.py:1699 part/admin.py:278 -#: part/models.py:3599 part/templates/part/upload_bom.html:54 +#: order/models.py:1084 order/models.py:1721 part/admin.py:278 +#: part/models.py:3600 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 #: report/templates/report/inventree_so_report_base.html:28 #: templates/js/translated/bom.js:739 templates/js/translated/bom.js:913 -#: templates/js/translated/build.js:2037 templates/js/translated/order.js:272 +#: templates/js/translated/build.js:2041 templates/js/translated/order.js:273 #: templates/js/translated/pricing.js:372 #: templates/js/translated/purchase_order.js:1992 #: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:1749 +#: templates/js/translated/sales_order.js:1768 msgid "Reference" msgstr "" @@ -894,12 +895,12 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:180 build/templates/build/build_base.html:98 -#: build/templates/build/detail.html:29 company/models.py:722 -#: order/models.py:1186 order/models.py:1302 order/models.py:1303 -#: part/models.py:387 part/models.py:2846 part/models.py:2960 -#: part/models.py:3100 part/models.py:3119 part/models.py:3138 -#: part/models.py:3159 part/models.py:3251 part/models.py:3372 -#: part/models.py:3464 part/models.py:3564 part/models.py:3878 +#: build/templates/build/detail.html:29 company/models.py:723 +#: order/models.py:1192 order/models.py:1308 order/models.py:1309 +#: part/models.py:388 part/models.py:2847 part/models.py:2961 +#: part/models.py:3101 part/models.py:3120 part/models.py:3139 +#: part/models.py:3160 part/models.py:3252 part/models.py:3373 +#: part/models.py:3465 part/models.py:3565 part/models.py:3879 #: part/serializers.py:849 part/serializers.py:1252 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -910,7 +911,7 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:27 #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:155 stock/serializers.py:508 +#: stock/serializers.py:156 stock/serializers.py:509 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -918,8 +919,8 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:516 templates/js/translated/bom.js:601 #: templates/js/translated/bom.js:738 templates/js/translated/bom.js:857 -#: templates/js/translated/build.js:1342 templates/js/translated/build.js:1904 -#: templates/js/translated/build.js:2403 templates/js/translated/build.js:2805 +#: templates/js/translated/build.js:1346 templates/js/translated/build.js:1908 +#: templates/js/translated/build.js:2407 templates/js/translated/build.js:2809 #: templates/js/translated/company.js:322 #: templates/js/translated/company.js:807 #: templates/js/translated/company.js:914 @@ -932,14 +933,14 @@ msgstr "" #: templates/js/translated/purchase_order.js:1934 #: templates/js/translated/return_order.js:507 #: templates/js/translated/return_order.js:674 -#: templates/js/translated/sales_order.js:249 -#: templates/js/translated/sales_order.js:1133 -#: templates/js/translated/sales_order.js:1532 -#: templates/js/translated/sales_order.js:1733 +#: templates/js/translated/sales_order.js:252 +#: templates/js/translated/sales_order.js:1152 +#: templates/js/translated/sales_order.js:1551 +#: templates/js/translated/sales_order.js:1752 #: templates/js/translated/stock.js:607 templates/js/translated/stock.js:773 -#: templates/js/translated/stock.js:985 templates/js/translated/stock.js:1734 -#: templates/js/translated/stock.js:2555 templates/js/translated/stock.js:2792 -#: templates/js/translated/stock.js:2929 +#: templates/js/translated/stock.js:985 templates/js/translated/stock.js:1737 +#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2932 msgid "Part" msgstr "" @@ -956,8 +957,8 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:202 build/serializers.py:900 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:2395 +#: templates/js/translated/sales_order.js:1140 msgid "Source Location" msgstr "" @@ -997,8 +998,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:229 order/serializers.py:504 -#: stock/models.py:738 templates/js/translated/purchase_order.js:1058 +#: build/models.py:245 build/serializers.py:229 order/serializers.py:505 +#: stock/models.py:739 templates/js/translated/purchase_order.js:1058 msgid "Batch Code" msgstr "" @@ -1006,10 +1007,10 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:240 part/models.py:1031 +#: build/models.py:252 order/models.py:240 part/models.py:1032 #: part/templates/part/part_base.html:312 #: templates/js/translated/return_order.js:307 -#: templates/js/translated/sales_order.js:775 +#: templates/js/translated/sales_order.js:782 msgid "Creation Date" msgstr "" @@ -1021,8 +1022,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:260 order/models.py:405 order/models.py:1742 -#: templates/js/translated/build.js:2890 +#: build/models.py:260 order/models.py:405 order/models.py:1764 +#: templates/js/translated/build.js:2894 msgid "Completion Date" msgstr "" @@ -1030,7 +1031,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:274 templates/js/translated/build.js:2850 +#: build/models.py:274 templates/js/translated/build.js:2854 msgid "Issued by" msgstr "" @@ -1042,10 +1043,10 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:254 #: order/templates/order/order_base.html:214 #: order/templates/order/return_order_base.html:182 -#: order/templates/order/sales_order_base.html:222 part/models.py:1035 +#: order/templates/order/sales_order_base.html:222 part/models.py:1036 #: part/templates/part/part_base.html:392 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2862 +#: templates/js/translated/build.js:2866 #: templates/js/translated/purchase_order.js:1682 #: templates/js/translated/return_order.js:327 #: templates/js/translated/table_filters.js:446 @@ -1062,7 +1063,7 @@ msgstr "" #: order/templates/order/order_base.html:171 #: order/templates/order/return_order_base.html:146 #: order/templates/order/sales_order_base.html:181 -#: part/templates/part/part_base.html:385 stock/models.py:732 +#: part/templates/part/part_base.html:385 stock/models.py:733 #: stock/templates/stock/item_base.html:201 msgid "External Link" msgstr "" @@ -1105,11 +1106,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1275 order/models.py:1576 +#: build/models.py:1275 order/models.py:1598 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1281 order/models.py:1579 +#: build/models.py:1281 order/models.py:1601 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1121,44 +1122,44 @@ msgstr "" msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1413 stock/templates/stock/item_base.html:170 -#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2778 +#: build/models.py:1422 stock/templates/stock/item_base.html:170 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2782 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1414 +#: build/models.py:1423 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1430 build/serializers.py:749 order/serializers.py:1056 -#: order/serializers.py:1077 stock/serializers.py:412 stock/serializers.py:769 -#: stock/serializers.py:895 stock/templates/stock/item_base.html:10 +#: build/models.py:1439 build/serializers.py:749 order/serializers.py:1060 +#: order/serializers.py:1081 stock/serializers.py:413 stock/serializers.py:770 +#: stock/serializers.py:896 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:195 -#: templates/js/translated/build.js:894 templates/js/translated/build.js:899 -#: templates/js/translated/build.js:2405 templates/js/translated/build.js:2975 -#: templates/js/translated/sales_order.js:250 -#: templates/js/translated/sales_order.js:1134 -#: templates/js/translated/sales_order.js:1433 -#: templates/js/translated/sales_order.js:1438 -#: templates/js/translated/sales_order.js:1539 -#: templates/js/translated/sales_order.js:1629 +#: templates/js/translated/build.js:898 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:2409 templates/js/translated/build.js:2979 +#: templates/js/translated/sales_order.js:253 +#: templates/js/translated/sales_order.js:1153 +#: templates/js/translated/sales_order.js:1452 +#: templates/js/translated/sales_order.js:1457 +#: templates/js/translated/sales_order.js:1558 +#: templates/js/translated/sales_order.js:1648 #: templates/js/translated/stock.js:608 templates/js/translated/stock.js:774 -#: templates/js/translated/stock.js:2675 +#: templates/js/translated/stock.js:2678 msgid "Stock Item" msgstr "" -#: build/models.py:1431 +#: build/models.py:1440 msgid "Source stock item" msgstr "" -#: build/models.py:1443 build/serializers.py:197 +#: build/models.py:1452 build/serializers.py:197 #: build/templates/build/build_base.html:103 #: build/templates/build/detail.html:34 common/models.py:2152 -#: order/models.py:1070 order/models.py:1620 order/serializers.py:1230 +#: order/models.py:1070 order/models.py:1642 order/serializers.py:1234 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277 -#: part/forms.py:47 part/models.py:2973 part/models.py:3580 +#: part/forms.py:47 part/models.py:2974 part/models.py:3581 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1167,18 +1168,18 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:103 stock/serializers.py:305 +#: stock/admin.py:103 stock/serializers.py:306 #: stock/templates/stock/item_base.html:288 #: stock/templates/stock/item_base.html:296 #: stock/templates/stock/item_base.html:343 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:518 templates/js/translated/bom.js:740 #: templates/js/translated/bom.js:921 templates/js/translated/build.js:474 -#: templates/js/translated/build.js:921 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:1930 templates/js/translated/build.js:2406 +#: templates/js/translated/build.js:925 templates/js/translated/build.js:1368 +#: templates/js/translated/build.js:1934 templates/js/translated/build.js:2410 #: templates/js/translated/company.js:1406 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/order.js:279 templates/js/translated/part.js:901 +#: templates/js/translated/order.js:286 templates/js/translated/part.js:901 #: templates/js/translated/part.js:1469 templates/js/translated/part.js:2904 #: templates/js/translated/pricing.js:367 #: templates/js/translated/pricing.js:460 @@ -1187,32 +1188,32 @@ msgstr "" #: templates/js/translated/purchase_order.js:710 #: templates/js/translated/purchase_order.js:1774 #: templates/js/translated/purchase_order.js:1998 -#: templates/js/translated/sales_order.js:266 -#: templates/js/translated/sales_order.js:1135 -#: templates/js/translated/sales_order.js:1452 -#: templates/js/translated/sales_order.js:1545 -#: templates/js/translated/sales_order.js:1635 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:269 +#: templates/js/translated/sales_order.js:1154 +#: templates/js/translated/sales_order.js:1471 +#: templates/js/translated/sales_order.js:1564 +#: templates/js/translated/sales_order.js:1654 +#: templates/js/translated/sales_order.js:1774 #: templates/js/translated/stock.js:495 templates/js/translated/stock.js:633 -#: templates/js/translated/stock.js:804 templates/js/translated/stock.js:2719 -#: templates/js/translated/stock.js:2804 +#: templates/js/translated/stock.js:804 templates/js/translated/stock.js:2722 +#: templates/js/translated/stock.js:2807 msgid "Quantity" msgstr "" -#: build/models.py:1444 +#: build/models.py:1453 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1452 +#: build/models.py:1461 msgid "Install into" msgstr "" -#: build/models.py:1453 +#: build/models.py:1462 msgid "Destination stock item" msgstr "" #: build/serializers.py:148 build/serializers.py:778 -#: templates/js/translated/build.js:1352 +#: templates/js/translated/build.js:1356 msgid "Build Output" msgstr "" @@ -1237,9 +1238,9 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:212 build/serializers.py:769 order/models.py:436 -#: order/serializers.py:377 order/serializers.py:499 part/serializers.py:1094 -#: part/serializers.py:1415 stock/models.py:592 stock/models.py:1370 -#: stock/serializers.py:314 +#: order/serializers.py:378 order/serializers.py:500 part/serializers.py:1094 +#: part/serializers.py:1415 stock/models.py:593 stock/models.py:1386 +#: stock/serializers.py:315 msgid "Quantity must be greater than zero" msgstr "" @@ -1251,8 +1252,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:236 order/serializers.py:512 order/serializers.py:1234 -#: stock/serializers.py:323 templates/js/translated/purchase_order.js:1082 +#: build/serializers.py:236 order/serializers.py:513 order/serializers.py:1238 +#: stock/serializers.py:324 templates/js/translated/purchase_order.js:1082 #: templates/js/translated/stock.js:298 templates/js/translated/stock.js:496 msgid "Serial Numbers" msgstr "" @@ -1269,7 +1270,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:286 stock/api.py:668 +#: build/serializers.py:286 stock/api.py:669 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1277,23 +1278,23 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:375 build/serializers.py:446 order/serializers.py:485 -#: order/serializers.py:606 order/serializers.py:1583 part/serializers.py:861 -#: stock/serializers.py:334 stock/serializers.py:469 stock/serializers.py:550 -#: stock/serializers.py:930 stock/serializers.py:1172 -#: stock/templates/stock/item_base.html:384 +#: build/serializers.py:375 build/serializers.py:446 order/serializers.py:486 +#: order/serializers.py:607 order/serializers.py:1587 part/serializers.py:861 +#: stock/serializers.py:335 stock/serializers.py:470 stock/serializers.py:551 +#: stock/serializers.py:931 stock/serializers.py:1173 +#: stock/templates/stock/item_base.html:390 #: templates/js/translated/barcode.js:517 -#: templates/js/translated/barcode.js:765 templates/js/translated/build.js:906 -#: templates/js/translated/build.js:1945 +#: templates/js/translated/barcode.js:765 templates/js/translated/build.js:910 +#: templates/js/translated/build.js:1949 #: templates/js/translated/purchase_order.js:1107 #: templates/js/translated/purchase_order.js:1197 -#: templates/js/translated/sales_order.js:1445 -#: templates/js/translated/sales_order.js:1556 -#: templates/js/translated/sales_order.js:1564 -#: templates/js/translated/sales_order.js:1643 +#: templates/js/translated/sales_order.js:1464 +#: templates/js/translated/sales_order.js:1575 +#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1662 #: templates/js/translated/stock.js:609 templates/js/translated/stock.js:775 -#: templates/js/translated/stock.js:987 templates/js/translated/stock.js:1898 -#: templates/js/translated/stock.js:2569 +#: templates/js/translated/stock.js:987 templates/js/translated/stock.js:1901 +#: templates/js/translated/stock.js:2572 msgid "Location" msgstr "" @@ -1319,15 +1320,15 @@ msgstr "" #: build/serializers.py:453 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:788 -#: order/models.py:1725 order/serializers.py:522 stock/admin.py:106 -#: stock/templates/stock/item_base.html:417 -#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2834 +#: order/models.py:1747 order/serializers.py:523 stock/admin.py:106 +#: stock/templates/stock/item_base.html:423 +#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2838 #: templates/js/translated/purchase_order.js:1237 #: templates/js/translated/purchase_order.js:1641 #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:767 -#: templates/js/translated/stock.js:1873 templates/js/translated/stock.js:2693 -#: templates/js/translated/stock.js:2820 +#: templates/js/translated/sales_order.js:774 +#: templates/js/translated/stock.js:1876 templates/js/translated/stock.js:2696 +#: templates/js/translated/stock.js:2823 msgid "Status" msgstr "" @@ -1391,7 +1392,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:622 order/serializers.py:259 order/serializers.py:1124 +#: build/serializers.py:622 order/serializers.py:260 order/serializers.py:1128 msgid "Accept Incomplete" msgstr "" @@ -1407,8 +1408,8 @@ msgstr "" msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:672 build/serializers.py:726 part/models.py:3487 -#: part/models.py:3870 +#: build/serializers.py:672 build/serializers.py:726 part/models.py:3488 +#: part/models.py:3871 msgid "BOM Item" msgstr "" @@ -1424,11 +1425,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:755 stock/serializers.py:782 +#: build/serializers.py:755 stock/serializers.py:783 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:804 order/serializers.py:1114 +#: build/serializers.py:804 order/serializers.py:1118 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1445,7 +1446,7 @@ msgstr "" msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:845 order/serializers.py:1398 +#: build/serializers.py:845 order/serializers.py:1402 msgid "Allocation items must be provided" msgstr "" @@ -1609,13 +1610,13 @@ msgstr "" #: order/templates/order/return_order_base.html:165 #: order/templates/order/sales_order_base.html:193 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2882 templates/js/translated/part.js:1488 +#: templates/js/translated/build.js:2886 templates/js/translated/part.js:1488 #: templates/js/translated/purchase_order.js:1658 #: templates/js/translated/purchase_order.js:2074 #: templates/js/translated/return_order.js:315 #: templates/js/translated/return_order.js:715 -#: templates/js/translated/sales_order.js:783 -#: templates/js/translated/sales_order.js:1798 +#: templates/js/translated/sales_order.js:790 +#: templates/js/translated/sales_order.js:1817 msgid "Target Date" msgstr "" @@ -1644,18 +1645,18 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1295 -#: order/models.py:1394 order/models.py:1526 +#: build/templates/build/detail.html:101 order/api.py:1451 order/models.py:1301 +#: order/models.py:1400 order/models.py:1548 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 #: report/templates/report/inventree_so_report_base.html:14 -#: stock/templates/stock/item_base.html:364 +#: stock/templates/stock/item_base.html:370 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:898 -#: templates/js/translated/sales_order.js:717 -#: templates/js/translated/sales_order.js:940 -#: templates/js/translated/stock.js:2622 +#: templates/js/translated/sales_order.js:724 +#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/stock.js:2625 msgid "Sales Order" msgstr "" @@ -1666,7 +1667,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2799 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2803 msgid "Priority" msgstr "" @@ -1694,7 +1695,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1213 +#: build/templates/build/detail.html:49 order/models.py:1219 #: templates/js/translated/purchase_order.js:2116 msgid "Destination" msgstr "" @@ -1709,11 +1710,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:105 #: stock/templates/stock/item_base.html:163 -#: templates/js/translated/build.js:1371 +#: templates/js/translated/build.js:1375 #: templates/js/translated/model_renderers.js:209 #: templates/js/translated/purchase_order.js:1203 -#: templates/js/translated/stock.js:1057 templates/js/translated/stock.js:1887 -#: templates/js/translated/stock.js:2827 +#: templates/js/translated/stock.js:1057 templates/js/translated/stock.js:1890 +#: templates/js/translated/stock.js:2830 #: templates/js/translated/table_filters.js:255 #: templates/js/translated/table_filters.js:346 msgid "Batch" @@ -1723,7 +1724,7 @@ msgstr "" #: order/templates/order/order_base.html:177 #: order/templates/order/return_order_base.html:152 #: order/templates/order/sales_order_base.html:187 -#: templates/js/translated/build.js:2842 +#: templates/js/translated/build.js:2846 msgid "Created" msgstr "" @@ -1735,7 +1736,7 @@ msgstr "" msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:19 msgid "Child Build Orders" msgstr "" @@ -1743,7 +1744,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:183 templates/js/translated/build.js:2215 +#: build/templates/build/detail.html:183 templates/js/translated/build.js:2219 msgid "Unallocate stock" msgstr "" @@ -1835,11 +1836,15 @@ msgstr "" msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:11 +msgid "Consumed Stock" +msgstr "" + +#: build/templates/build/detail.html:300 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:300 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:312 build/templates/build/sidebar.html:21 #: company/templates/company/detail.html:261 #: company/templates/company/manufacturer_part.html:151 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1855,15 +1860,15 @@ msgstr "" msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:315 +#: build/templates/build/detail.html:327 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:479 +#: build/templates/build/detail.html:500 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:480 +#: build/templates/build/detail.html:501 msgid "All untracked stock items have been allocated" msgstr "" @@ -1875,11 +1880,11 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:12 +#: build/templates/build/sidebar.html:14 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/sidebar.html:15 +#: build/templates/build/sidebar.html:17 msgid "Completed Outputs" msgstr "" @@ -1933,7 +1938,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:70 #: templates/js/translated/purchase_order.js:1629 #: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:754 +#: templates/js/translated/sales_order.js:761 #: templates/js/translated/table_filters.js:20 #: templates/project_code_data.html:6 msgid "Project Code" @@ -2222,7 +2227,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1157 part/admin.py:55 part/models.py:3374 +#: common/models.py:1157 part/admin.py:55 part/models.py:3375 #: report/models.py:165 templates/js/translated/table_filters.js:105 #: templates/js/translated/table_filters.js:660 msgid "Template" @@ -2232,7 +2237,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1164 part/admin.py:51 part/admin.py:283 part/models.py:989 +#: common/models.py:1164 part/admin.py:51 part/admin.py:283 part/models.py:990 #: templates/js/translated/bom.js:1594 #: templates/js/translated/table_filters.js:272 #: templates/js/translated/table_filters.js:619 @@ -2243,7 +2248,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1171 part/admin.py:52 part/models.py:995 +#: common/models.py:1171 part/admin.py:52 part/models.py:996 #: templates/js/translated/table_filters.js:627 msgid "Component" msgstr "" @@ -2252,7 +2257,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1178 part/admin.py:53 part/models.py:1006 +#: common/models.py:1178 part/admin.py:53 part/models.py:1007 msgid "Purchaseable" msgstr "" @@ -2260,7 +2265,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1185 part/admin.py:54 part/models.py:1011 +#: common/models.py:1185 part/admin.py:54 part/models.py:1012 #: templates/js/translated/table_filters.js:648 msgid "Salable" msgstr "" @@ -2269,7 +2274,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1192 part/admin.py:56 part/models.py:1001 +#: common/models.py:1192 part/admin.py:56 part/models.py:1002 #: templates/js/translated/table_filters.js:113 #: templates/js/translated/table_filters.js:189 #: templates/js/translated/table_filters.js:664 @@ -2280,7 +2285,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1199 part/admin.py:57 part/models.py:1021 +#: common/models.py:1199 part/admin.py:57 part/models.py:1022 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:109 #: templates/js/translated/table_filters.js:668 @@ -3224,7 +3229,7 @@ msgid "Price break quantity" msgstr "" #: common/models.py:2160 company/serializers.py:435 order/admin.py:43 -#: order/models.py:1123 order/models.py:1914 +#: order/models.py:1129 order/models.py:1936 #: templates/js/translated/company.js:1411 templates/js/translated/part.js:1543 #: templates/js/translated/pricing.js:607 #: templates/js/translated/return_order.js:705 @@ -3247,7 +3252,7 @@ msgstr "" msgid "Name for this webhook" msgstr "" -#: common/models.py:2336 part/admin.py:50 part/models.py:1016 +#: common/models.py:2336 part/admin.py:50 part/models.py:1017 #: plugin/models.py:47 templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:435 @@ -3349,7 +3354,7 @@ msgstr "" msgid "Was this news item read?" msgstr "" -#: common/models.py:2712 company/models.py:141 part/models.py:910 +#: common/models.py:2712 company/models.py:141 part/models.py:911 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3461,7 +3466,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:124 company/templates/company/company_base.html:133 -#: templates/InvenTree/settings/user.html:48 +#: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:644 msgid "Email" msgstr "" @@ -3515,17 +3520,17 @@ msgstr "" #: company/models.py:221 company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:179 templates/js/translated/company.js:473 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:473 msgid "Company" msgstr "" -#: company/models.py:276 company/models.py:514 stock/models.py:674 -#: stock/serializers.py:154 stock/templates/stock/item_base.html:143 +#: company/models.py:276 company/models.py:515 stock/models.py:675 +#: stock/serializers.py:155 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:591 msgid "Base Part" msgstr "" -#: company/models.py:280 company/models.py:518 +#: company/models.py:280 company/models.py:519 msgid "Select part" msgstr "" @@ -3568,7 +3573,7 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:358 company/models.py:382 company/models.py:537 +#: company/models.py:358 company/models.py:382 company/models.py:538 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:218 @@ -3581,7 +3586,7 @@ msgstr "" #: company/models.py:395 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2228 templates/js/translated/company.js:857 +#: stock/models.py:2252 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1291 #: templates/js/translated/stock.js:1410 msgid "Value" @@ -3591,8 +3596,8 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:402 part/admin.py:40 part/models.py:983 -#: part/models.py:3334 part/templates/part/part_base.html:286 +#: company/models.py:402 part/admin.py:40 part/models.py:984 +#: part/models.py:3335 part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings_staff_js.html:327 #: templates/js/translated/company.js:1068 templates/js/translated/part.js:1297 msgid "Units" @@ -3602,11 +3607,11 @@ msgstr "" msgid "Parameter units" msgstr "" -#: company/models.py:482 +#: company/models.py:483 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:524 company/templates/company/company_base.html:82 +#: company/models.py:525 company/templates/company/company_base.html:82 #: company/templates/company/supplier_part.html:130 order/models.py:378 #: order/templates/order/order_base.html:140 part/bom.py:285 part/bom.py:313 #: part/serializers.py:350 stock/templates/stock/item_base.html:225 @@ -3620,11 +3625,11 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:525 +#: company/models.py:526 msgid "Select supplier" msgstr "" -#: company/models.py:530 company/templates/company/supplier_part.html:140 +#: company/models.py:531 company/templates/company/supplier_part.html:140 #: part/bom.py:286 part/bom.py:314 part/serializers.py:356 #: templates/js/translated/company.js:323 templates/js/translated/part.js:1444 #: templates/js/translated/pricing.js:496 @@ -3633,53 +3638,53 @@ msgstr "" msgid "SKU" msgstr "" -#: company/models.py:531 part/serializers.py:356 +#: company/models.py:532 part/serializers.py:356 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:538 +#: company/models.py:539 msgid "Select manufacturer part" msgstr "" -#: company/models.py:544 +#: company/models.py:545 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:550 +#: company/models.py:551 msgid "Supplier part description" msgstr "" -#: company/models.py:555 company/templates/company/supplier_part.html:175 -#: part/admin.py:279 part/models.py:3602 part/templates/part/upload_bom.html:59 +#: company/models.py:556 company/templates/company/supplier_part.html:175 +#: part/admin.py:279 part/models.py:3603 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 #: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:417 +#: stock/serializers.py:418 msgid "Note" msgstr "" -#: company/models.py:559 part/models.py:1907 +#: company/models.py:560 part/models.py:1908 msgid "base cost" msgstr "" -#: company/models.py:559 part/models.py:1907 +#: company/models.py:560 part/models.py:1908 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:561 company/templates/company/supplier_part.html:161 -#: stock/admin.py:119 stock/models.py:700 +#: company/models.py:562 company/templates/company/supplier_part.html:161 +#: stock/admin.py:119 stock/models.py:701 #: stock/templates/stock/item_base.html:241 #: templates/js/translated/company.js:1241 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2124 msgid "Packaging" msgstr "" -#: company/models.py:561 +#: company/models.py:562 msgid "Part packaging" msgstr "" -#: company/models.py:564 company/serializers.py:330 +#: company/models.py:565 company/serializers.py:330 #: company/templates/company/supplier_part.html:168 #: templates/js/translated/company.js:1246 templates/js/translated/part.js:1479 #: templates/js/translated/part.js:1535 @@ -3691,23 +3696,23 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:565 +#: company/models.py:566 msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:571 part/models.py:1909 +#: company/models.py:572 part/models.py:1910 msgid "multiple" msgstr "" -#: company/models.py:571 +#: company/models.py:572 msgid "Order multiple" msgstr "" -#: company/models.py:579 company/templates/company/supplier_part.html:115 +#: company/models.py:580 company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1123 templates/js/translated/build.js:2075 -#: templates/js/translated/build.js:2982 +#: templates/js/translated/bom.js:1123 templates/js/translated/build.js:2079 +#: templates/js/translated/build.js:2986 #: templates/js/translated/model_renderers.js:202 #: templates/js/translated/part.js:636 templates/js/translated/part.js:638 #: templates/js/translated/part.js:643 @@ -3716,15 +3721,15 @@ msgstr "" msgid "Available" msgstr "" -#: company/models.py:580 +#: company/models.py:581 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:584 +#: company/models.py:585 msgid "Availability Updated" msgstr "" -#: company/models.py:585 +#: company/models.py:586 msgid "Date of last update of availability data" msgstr "" @@ -3787,15 +3792,15 @@ msgid "Delete image" msgstr "" #: company/templates/company/company_base.html:87 order/models.py:776 -#: order/models.py:1713 order/templates/order/return_order_base.html:132 -#: order/templates/order/sales_order_base.html:145 stock/models.py:719 -#: stock/models.py:720 stock/serializers.py:824 -#: stock/templates/stock/item_base.html:395 +#: order/models.py:1735 order/templates/order/return_order_base.html:132 +#: order/templates/order/sales_order_base.html:145 stock/models.py:720 +#: stock/models.py:721 stock/serializers.py:825 +#: stock/templates/stock/item_base.html:401 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:480 #: templates/js/translated/return_order.js:264 -#: templates/js/translated/sales_order.js:732 -#: templates/js/translated/stock.js:2657 +#: templates/js/translated/sales_order.js:739 +#: templates/js/translated/stock.js:2660 #: templates/js/translated/table_filters.js:697 msgid "Customer" msgstr "" @@ -3819,8 +3824,8 @@ msgstr "" #: company/templates/company/company_base.html:209 #: part/templates/part/part_base.html:533 -#: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:149 +#: templates/InvenTree/settings/user.html:88 +#: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" @@ -3890,7 +3895,7 @@ msgstr "" #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:35 -#: templates/InvenTree/index.html:276 templates/InvenTree/search.html:200 +#: templates/InvenTree/index.html:275 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:53 #: templates/js/translated/search.js:235 templates/navbar.html:50 #: users/models.py:43 @@ -3913,7 +3918,7 @@ msgstr "" #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:131 part/templates/part/part_sidebar.html:39 -#: templates/InvenTree/index.html:308 templates/InvenTree/search.html:220 +#: templates/InvenTree/index.html:307 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:55 #: templates/js/translated/search.js:249 templates/navbar.html:62 #: users/models.py:44 @@ -3931,7 +3936,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:173 -#: templates/js/translated/build.js:1915 +#: templates/js/translated/build.js:1919 msgid "Assigned Stock" msgstr "" @@ -3974,7 +3979,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: templates/InvenTree/search.html:181 templates/navbar.html:49 +#: templates/InvenTree/search.html:180 templates/navbar.html:49 msgid "Manufacturers" msgstr "" @@ -4006,7 +4011,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/admin.py:60 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/search.html:191 templates/navbar.html:48 +#: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4043,7 +4048,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:226 -#: part/templates/part/detail.html:871 +#: part/templates/part/detail.html:869 msgid "Add Parameter" msgstr "" @@ -4068,11 +4073,11 @@ msgid "Contacts" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:683 +#: company/templates/company/supplier_part.html:24 stock/models.py:684 #: stock/templates/stock/item_base.html:234 #: templates/js/translated/company.js:1195 #: templates/js/translated/purchase_order.js:708 -#: templates/js/translated/stock.js:1977 +#: templates/js/translated/stock.js:1980 msgid "Supplier Part" msgstr "" @@ -4153,7 +4158,7 @@ msgstr "" msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:354 +#: company/templates/company/supplier_part.html:352 msgid "Update Part Availability" msgstr "" @@ -4165,7 +4170,7 @@ msgstr "" #: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1000 -#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2475 +#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2478 #: users/models.py:41 msgid "Stock Items" msgstr "" @@ -4182,7 +4187,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:211 +#: company/views.py:44 templates/InvenTree/search.html:210 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -4281,9 +4286,9 @@ msgstr "" #: order/admin.py:30 order/models.py:69 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 -#: templates/js/translated/order.js:302 +#: templates/js/translated/order.js:309 #: templates/js/translated/purchase_order.js:2052 -#: templates/js/translated/sales_order.js:1778 +#: templates/js/translated/sales_order.js:1797 msgid "Total Price" msgstr "" @@ -4291,7 +4296,7 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:1440 order/models.py:1169 order/models.py:1253 +#: order/api.py:1449 order/models.py:1175 order/models.py:1259 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4301,11 +4306,11 @@ msgstr "" #: templates/js/translated/purchase_order.js:114 #: templates/js/translated/purchase_order.js:709 #: templates/js/translated/purchase_order.js:1596 -#: templates/js/translated/stock.js:1957 templates/js/translated/stock.js:2605 +#: templates/js/translated/stock.js:1960 templates/js/translated/stock.js:2608 msgid "Purchase Order" msgstr "" -#: order/api.py:1444 +#: order/api.py:1453 templates/js/translated/sales_order.js:997 msgid "Unknown" msgstr "" @@ -4333,7 +4338,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:232 order/models.py:1091 order/models.py:1439 +#: order/models.py:232 order/models.py:1091 order/models.py:1451 msgid "Link to external page" msgstr "" @@ -4378,15 +4383,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:399 order/models.py:1736 +#: order/models.py:399 order/models.py:1758 msgid "Issue Date" msgstr "" -#: order/models.py:400 order/models.py:1737 +#: order/models.py:400 order/models.py:1759 msgid "Date order was issued" msgstr "" -#: order/models.py:406 order/models.py:1743 +#: order/models.py:406 order/models.py:1765 msgid "Date order was completed" msgstr "" @@ -4402,17 +4407,17 @@ msgstr "" msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:796 order/models.py:1730 +#: order/models.py:796 order/models.py:1752 msgid "Customer Reference " msgstr "" -#: order/models.py:796 order/models.py:1731 +#: order/models.py:796 order/models.py:1753 msgid "Customer order reference code" msgstr "" -#: order/models.py:798 order/models.py:1399 -#: templates/js/translated/sales_order.js:791 -#: templates/js/translated/sales_order.js:972 +#: order/models.py:798 order/models.py:1405 +#: templates/js/translated/sales_order.js:798 +#: templates/js/translated/sales_order.js:979 msgid "Shipment Date" msgstr "" @@ -4428,7 +4433,7 @@ msgstr "" msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:861 templates/js/translated/sales_order.js:451 +#: order/models.py:861 templates/js/translated/sales_order.js:458 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" @@ -4452,37 +4457,41 @@ msgstr "" msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1114 +#: order/models.py:1115 +msgid "Line item description (optional)" +msgstr "" + +#: order/models.py:1120 msgid "Context" msgstr "" -#: order/models.py:1115 +#: order/models.py:1121 msgid "Additional context for this line" msgstr "" -#: order/models.py:1124 +#: order/models.py:1130 msgid "Unit price" msgstr "" -#: order/models.py:1154 +#: order/models.py:1160 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1162 +#: order/models.py:1168 msgid "deleted" msgstr "" -#: order/models.py:1168 order/models.py:1253 order/models.py:1294 -#: order/models.py:1393 order/models.py:1526 order/models.py:1883 -#: order/models.py:1930 templates/js/translated/sales_order.js:1422 +#: order/models.py:1174 order/models.py:1259 order/models.py:1300 +#: order/models.py:1399 order/models.py:1548 order/models.py:1905 +#: order/models.py:1952 templates/js/translated/sales_order.js:1441 msgid "Order" msgstr "" -#: order/models.py:1187 +#: order/models.py:1193 msgid "Supplier part" msgstr "" -#: order/models.py:1194 order/templates/order/order_base.html:200 +#: order/models.py:1200 order/templates/order/order_base.html:200 #: templates/js/translated/part.js:1527 templates/js/translated/part.js:1559 #: templates/js/translated/purchase_order.js:1235 #: templates/js/translated/purchase_order.js:2096 @@ -4492,326 +4501,334 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1195 +#: order/models.py:1201 msgid "Number of items received" msgstr "" -#: order/models.py:1202 stock/models.py:814 stock/serializers.py:251 +#: order/models.py:1208 stock/models.py:823 stock/serializers.py:252 #: stock/templates/stock/item_base.html:184 -#: templates/js/translated/stock.js:2008 +#: templates/js/translated/stock.js:2011 msgid "Purchase Price" msgstr "" -#: order/models.py:1203 +#: order/models.py:1209 msgid "Unit purchase price" msgstr "" -#: order/models.py:1216 +#: order/models.py:1222 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1282 +#: order/models.py:1288 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1287 +#: order/models.py:1293 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1313 part/templates/part/part_pricing.html:107 +#: order/models.py:1319 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:926 msgid "Sale Price" msgstr "" -#: order/models.py:1314 +#: order/models.py:1320 msgid "Unit sale price" msgstr "" -#: order/models.py:1324 +#: order/models.py:1330 msgid "Shipped quantity" msgstr "" -#: order/models.py:1400 +#: order/models.py:1406 msgid "Date of shipment" msgstr "" -#: order/models.py:1407 +#: order/models.py:1411 templates/js/translated/sales_order.js:991 +msgid "Delivery Date" +msgstr "" + +#: order/models.py:1412 +msgid "Date of delivery of shipment" +msgstr "" + +#: order/models.py:1419 msgid "Checked By" msgstr "" -#: order/models.py:1408 +#: order/models.py:1420 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1415 order/models.py:1602 order/serializers.py:1245 -#: order/serializers.py:1373 templates/js/translated/model_renderers.js:412 +#: order/models.py:1427 order/models.py:1624 order/serializers.py:1249 +#: order/serializers.py:1377 templates/js/translated/model_renderers.js:412 msgid "Shipment" msgstr "" -#: order/models.py:1416 +#: order/models.py:1428 msgid "Shipment number" msgstr "" -#: order/models.py:1424 +#: order/models.py:1436 msgid "Tracking Number" msgstr "" -#: order/models.py:1425 +#: order/models.py:1437 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1432 +#: order/models.py:1444 msgid "Invoice Number" msgstr "" -#: order/models.py:1433 +#: order/models.py:1445 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1451 +#: order/models.py:1467 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1454 +#: order/models.py:1470 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1561 order/models.py:1563 +#: order/models.py:1583 order/models.py:1585 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1567 +#: order/models.py:1589 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1569 +#: order/models.py:1591 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1572 +#: order/models.py:1594 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1582 order/serializers.py:1107 +#: order/models.py:1604 order/serializers.py:1111 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1585 +#: order/models.py:1607 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1586 +#: order/models.py:1608 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1594 +#: order/models.py:1616 msgid "Line" msgstr "" -#: order/models.py:1603 +#: order/models.py:1625 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1616 order/models.py:1891 +#: order/models.py:1638 order/models.py:1913 #: templates/js/translated/return_order.js:686 msgid "Item" msgstr "" -#: order/models.py:1617 +#: order/models.py:1639 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1620 +#: order/models.py:1642 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1700 +#: order/models.py:1722 msgid "Return Order reference" msgstr "" -#: order/models.py:1714 +#: order/models.py:1736 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1725 +#: order/models.py:1747 msgid "Return order status" msgstr "" -#: order/models.py:1876 +#: order/models.py:1898 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1884 order/models.py:1930 +#: order/models.py:1906 order/models.py:1952 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 #: templates/js/translated/return_order.js:249 -#: templates/js/translated/stock.js:2639 +#: templates/js/translated/stock.js:2642 msgid "Return Order" msgstr "" -#: order/models.py:1892 +#: order/models.py:1914 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1897 +#: order/models.py:1919 msgid "Received Date" msgstr "" -#: order/models.py:1898 +#: order/models.py:1920 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1909 templates/js/translated/return_order.js:697 +#: order/models.py:1931 templates/js/translated/return_order.js:697 #: templates/js/translated/table_filters.js:89 msgid "Outcome" msgstr "" -#: order/models.py:1909 +#: order/models.py:1931 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1915 +#: order/models.py:1937 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:245 +#: order/serializers.py:246 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:260 order/serializers.py:1125 +#: order/serializers.py:261 order/serializers.py:1129 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:271 order/serializers.py:1136 +#: order/serializers.py:272 order/serializers.py:1140 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:384 +#: order/serializers.py:385 msgid "Order is not open" msgstr "" -#: order/serializers.py:402 +#: order/serializers.py:403 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:420 +#: order/serializers.py:421 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:425 +#: order/serializers.py:426 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:431 +#: order/serializers.py:432 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:433 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:470 order/serializers.py:1213 +#: order/serializers.py:471 order/serializers.py:1217 msgid "Line Item" msgstr "" -#: order/serializers.py:476 +#: order/serializers.py:477 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:486 order/serializers.py:607 order/serializers.py:1584 +#: order/serializers.py:487 order/serializers.py:608 order/serializers.py:1588 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:505 templates/js/translated/purchase_order.js:1059 +#: order/serializers.py:506 templates/js/translated/purchase_order.js:1059 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:513 templates/js/translated/purchase_order.js:1083 +#: order/serializers.py:514 templates/js/translated/purchase_order.js:1083 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:526 templates/js/translated/barcode.js:41 +#: order/serializers.py:527 templates/js/translated/barcode.js:41 msgid "Barcode" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:528 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:543 +#: order/serializers.py:544 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:570 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:623 order/serializers.py:1599 +#: order/serializers.py:624 order/serializers.py:1603 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:640 +#: order/serializers.py:641 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:651 +#: order/serializers.py:652 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:950 +#: order/serializers.py:951 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1005 +#: order/serializers.py:1008 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1068 order/serializers.py:1222 +#: order/serializers.py:1072 order/serializers.py:1226 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1090 +#: order/serializers.py:1094 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1235 +#: order/serializers.py:1239 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1257 order/serializers.py:1381 +#: order/serializers.py:1261 order/serializers.py:1385 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1260 order/serializers.py:1384 +#: order/serializers.py:1264 order/serializers.py:1388 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1314 +#: order/serializers.py:1318 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1324 +#: order/serializers.py:1328 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1550 +#: order/serializers.py:1554 msgid "Return order line item" msgstr "" -#: order/serializers.py:1557 +#: order/serializers.py:1561 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1560 +#: order/serializers.py:1564 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1592 +#: order/serializers.py:1596 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1673 +#: order/serializers.py:1677 msgid "Line price currency" msgstr "" @@ -5000,11 +5017,11 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:102 templates/js/translated/build.js:482 -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2291 #: templates/js/translated/purchase_order.js:653 #: templates/js/translated/purchase_order.js:1165 #: templates/js/translated/return_order.js:474 -#: templates/js/translated/sales_order.js:1045 +#: templates/js/translated/sales_order.js:1064 #: templates/js/translated/stock.js:645 templates/js/translated/stock.js:814 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5118,7 +5135,7 @@ msgstr "" #: order/templates/order/return_order_base.html:139 #: order/templates/order/sales_order_base.html:152 #: templates/js/translated/return_order.js:277 -#: templates/js/translated/sales_order.js:745 +#: templates/js/translated/sales_order.js:752 msgid "Customer Reference" msgstr "" @@ -5131,7 +5148,7 @@ msgstr "" #: templates/js/translated/part.js:1012 #: templates/js/translated/purchase_order.js:1671 #: templates/js/translated/return_order.js:349 -#: templates/js/translated/sales_order.js:803 +#: templates/js/translated/sales_order.js:810 msgid "Total Cost" msgstr "" @@ -5157,7 +5174,7 @@ msgid "Ship Items" msgstr "" #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/sales_order.js:429 +#: templates/js/translated/sales_order.js:436 msgid "Complete Sales Order" msgstr "" @@ -5184,13 +5201,13 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:333 +#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:332 msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:75 #: templates/attachment_table.html:6 templates/js/translated/bom.js:1232 -#: templates/js/translated/build.js:2188 +#: templates/js/translated/build.js:2192 msgid "Actions" msgstr "" @@ -5220,12 +5237,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:273 part/models.py:3468 part/tasks.py:285 +#: part/admin.py:33 part/admin.py:273 part/models.py:3469 part/tasks.py:285 #: stock/admin.py:101 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:275 part/models.py:3472 part/tasks.py:286 +#: part/admin.py:34 part/admin.py:275 part/models.py:3473 part/tasks.py:286 #: stock/admin.py:102 msgid "Part Name" msgstr "" @@ -5234,19 +5251,19 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271 +#: part/admin.py:36 part/models.py:886 part/templates/part/part_base.html:271 #: templates/js/translated/part.js:1166 templates/js/translated/part.js:1880 -#: templates/js/translated/stock.js:1756 +#: templates/js/translated/stock.js:1759 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279 +#: part/admin.py:37 part/models.py:893 part/templates/part/part_base.html:279 #: report/models.py:178 templates/js/translated/part.js:1171 #: templates/js/translated/part.js:1886 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:198 part/models.py:871 +#: part/admin.py:38 part/admin.py:198 part/models.py:872 #: part/templates/part/category.html:93 part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" @@ -5267,11 +5284,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179 +#: part/admin.py:46 part/models.py:861 part/templates/part/part_base.html:179 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:976 part/templates/part/part_base.html:205 +#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205 msgid "Minimum Stock" msgstr "" @@ -5282,7 +5299,7 @@ msgid "In Stock" msgstr "" #: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212 -#: templates/js/translated/bom.js:1163 templates/js/translated/build.js:2130 +#: templates/js/translated/bom.js:1163 templates/js/translated/build.js:2134 #: templates/js/translated/part.js:653 templates/js/translated/part.js:1772 #: templates/js/translated/table_filters.js:136 msgid "On Order" @@ -5292,9 +5309,9 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:64 templates/js/translated/build.js:2142 -#: templates/js/translated/build.js:2404 templates/js/translated/build.js:2989 -#: templates/js/translated/sales_order.js:1857 +#: part/admin.py:64 templates/js/translated/build.js:2146 +#: templates/js/translated/build.js:2408 templates/js/translated/build.js:2993 +#: templates/js/translated/sales_order.js:1876 #: templates/js/translated/table_filters.js:473 msgid "Allocated" msgstr "" @@ -5304,11 +5321,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2911 templates/js/translated/part.js:909 +#: part/admin.py:66 part/models.py:2912 templates/js/translated/part.js:909 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2917 templates/js/translated/part.js:919 +#: part/admin.py:67 part/models.py:2918 templates/js/translated/part.js:919 msgid "Maximum Cost" msgstr "" @@ -5325,7 +5342,7 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:202 part/models.py:388 part/templates/part/cat_link.html:3 +#: part/admin.py:202 part/models.py:389 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:23 part/templates/part/category.html:140 #: part/templates/part/category.html:160 #: part/templates/part/category_sidebar.html:9 @@ -5348,7 +5365,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:274 part/models.py:3476 +#: part/admin.py:274 part/models.py:3477 msgid "Part IPN" msgstr "" @@ -5390,7 +5407,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:175 part/models.py:124 part/models.py:919 +#: part/bom.py:175 part/models.py:124 part/models.py:920 #: part/templates/part/category.html:115 part/templates/part/part_base.html:369 msgid "Default Location" msgstr "" @@ -5400,7 +5417,7 @@ msgid "Total Stock" msgstr "" #: part/bom.py:177 part/templates/part/part_base.html:194 -#: templates/js/translated/sales_order.js:1824 +#: templates/js/translated/sales_order.js:1843 msgid "Available Stock" msgstr "" @@ -5408,7 +5425,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:72 part/models.py:3417 part/templates/part/category.html:16 +#: part/models.py:72 part/models.py:3418 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -5423,7 +5440,7 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:130 stock/models.py:124 templates/js/translated/stock.js:2481 +#: part/models.py:130 stock/models.py:124 templates/js/translated/stock.js:2484 #: templates/js/translated/table_filters.js:205 #: templates/js/translated/table_filters.js:225 msgid "Structural" @@ -5453,61 +5470,61 @@ msgstr "" msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:471 +#: part/models.py:472 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:513 part/models.py:525 +#: part/models.py:514 part/models.py:526 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:597 +#: part/models.py:598 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: part/models.py:668 +#: part/models.py:669 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:799 +#: part/models.py:800 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:804 +#: part/models.py:805 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:818 +#: part/models.py:819 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:842 part/models.py:3473 +#: part/models.py:843 part/models.py:3474 msgid "Part name" msgstr "" -#: part/models.py:848 +#: part/models.py:849 msgid "Is Template" msgstr "" -#: part/models.py:849 +#: part/models.py:850 msgid "Is this part a template part?" msgstr "" -#: part/models.py:859 +#: part/models.py:860 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:866 +#: part/models.py:867 msgid "Part description (optional)" msgstr "" -#: part/models.py:872 +#: part/models.py:873 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:879 part/models.py:3179 part/models.py:3416 +#: part/models.py:880 part/models.py:3180 part/models.py:3417 #: part/serializers.py:855 part/templates/part/part_base.html:262 #: templates/InvenTree/settings/settings_staff_js.html:204 #: templates/js/translated/notification.js:50 @@ -5515,249 +5532,249 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:880 +#: part/models.py:881 msgid "Part category" msgstr "" -#: part/models.py:886 +#: part/models.py:887 msgid "Internal Part Number" msgstr "" -#: part/models.py:891 +#: part/models.py:892 msgid "Part revision or version number" msgstr "" -#: part/models.py:917 +#: part/models.py:918 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:962 part/templates/part/part_base.html:378 +#: part/models.py:963 part/templates/part/part_base.html:378 msgid "Default Supplier" msgstr "" -#: part/models.py:963 +#: part/models.py:964 msgid "Default supplier part" msgstr "" -#: part/models.py:970 +#: part/models.py:971 msgid "Default Expiry" msgstr "" -#: part/models.py:971 +#: part/models.py:972 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:977 +#: part/models.py:978 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:984 +#: part/models.py:985 msgid "Units of measure for this part" msgstr "" -#: part/models.py:990 +#: part/models.py:991 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:996 +#: part/models.py:997 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1002 +#: part/models.py:1003 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1008 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1012 +#: part/models.py:1013 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1017 +#: part/models.py:1018 msgid "Is this part active?" msgstr "" -#: part/models.py:1022 +#: part/models.py:1023 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1024 +#: part/models.py:1025 msgid "BOM checksum" msgstr "" -#: part/models.py:1024 +#: part/models.py:1025 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1027 +#: part/models.py:1028 msgid "BOM checked by" msgstr "" -#: part/models.py:1029 +#: part/models.py:1030 msgid "BOM checked date" msgstr "" -#: part/models.py:1033 +#: part/models.py:1034 msgid "Creation User" msgstr "" -#: part/models.py:1035 +#: part/models.py:1036 msgid "User responsible for this part" msgstr "" -#: part/models.py:1039 part/templates/part/part_base.html:341 -#: stock/templates/stock/item_base.html:441 +#: part/models.py:1040 part/templates/part/part_base.html:341 +#: stock/templates/stock/item_base.html:447 #: templates/js/translated/part.js:1972 msgid "Last Stocktake" msgstr "" -#: part/models.py:1909 +#: part/models.py:1910 msgid "Sell multiple" msgstr "" -#: part/models.py:2834 +#: part/models.py:2835 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2851 +#: part/models.py:2852 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2852 +#: part/models.py:2853 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2857 +#: part/models.py:2858 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2858 +#: part/models.py:2859 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2863 +#: part/models.py:2864 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2864 +#: part/models.py:2865 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2870 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2870 +#: part/models.py:2871 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2876 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2876 +#: part/models.py:2877 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2881 +#: part/models.py:2882 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2882 +#: part/models.py:2883 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2887 +#: part/models.py:2888 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2888 +#: part/models.py:2889 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2893 +#: part/models.py:2894 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2894 +#: part/models.py:2895 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2899 +#: part/models.py:2900 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2900 +#: part/models.py:2901 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2905 +#: part/models.py:2906 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2906 +#: part/models.py:2907 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2912 +#: part/models.py:2913 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2918 +#: part/models.py:2919 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2924 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2924 +#: part/models.py:2925 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2929 +#: part/models.py:2930 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2930 +#: part/models.py:2931 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2935 +#: part/models.py:2936 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2936 +#: part/models.py:2937 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2941 +#: part/models.py:2942 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2942 +#: part/models.py:2943 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2961 +#: part/models.py:2962 msgid "Part for stocktake" msgstr "" -#: part/models.py:2966 +#: part/models.py:2967 msgid "Item Count" msgstr "" -#: part/models.py:2967 +#: part/models.py:2968 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2974 +#: part/models.py:2975 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2978 part/models.py:3061 +#: part/models.py:2979 part/models.py:3062 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin.html:62 @@ -5766,305 +5783,305 @@ msgstr "" #: templates/js/translated/part.js:1025 templates/js/translated/pricing.js:798 #: templates/js/translated/pricing.js:919 #: templates/js/translated/purchase_order.js:1650 -#: templates/js/translated/stock.js:2519 +#: templates/js/translated/stock.js:2522 msgid "Date" msgstr "" -#: part/models.py:2979 +#: part/models.py:2980 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:2987 +#: part/models.py:2988 msgid "Additional notes" msgstr "" -#: part/models.py:2995 +#: part/models.py:2996 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3000 +#: part/models.py:3001 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3001 +#: part/models.py:3002 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3006 +#: part/models.py:3007 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3007 +#: part/models.py:3008 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3068 templates/InvenTree/settings/settings_staff_js.html:428 +#: part/models.py:3069 templates/InvenTree/settings/settings_staff_js.html:428 msgid "Report" msgstr "" -#: part/models.py:3069 +#: part/models.py:3070 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3074 templates/InvenTree/settings/settings_staff_js.html:435 +#: part/models.py:3075 templates/InvenTree/settings/settings_staff_js.html:435 msgid "Part Count" msgstr "" -#: part/models.py:3075 +#: part/models.py:3076 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3083 +#: part/models.py:3084 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3219 +#: part/models.py:3220 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3236 +#: part/models.py:3237 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3256 templates/js/translated/part.js:2462 +#: part/models.py:3257 templates/js/translated/part.js:2462 msgid "Test Name" msgstr "" -#: part/models.py:3257 +#: part/models.py:3258 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3262 +#: part/models.py:3263 msgid "Test Description" msgstr "" -#: part/models.py:3263 +#: part/models.py:3264 msgid "Enter description for this test" msgstr "" -#: part/models.py:3268 templates/js/translated/part.js:2471 +#: part/models.py:3269 templates/js/translated/part.js:2471 #: templates/js/translated/table_filters.js:419 msgid "Required" msgstr "" -#: part/models.py:3269 +#: part/models.py:3270 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3274 templates/js/translated/part.js:2479 +#: part/models.py:3275 templates/js/translated/part.js:2479 msgid "Requires Value" msgstr "" -#: part/models.py:3275 +#: part/models.py:3276 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3280 templates/js/translated/part.js:2486 +#: part/models.py:3281 templates/js/translated/part.js:2486 msgid "Requires Attachment" msgstr "" -#: part/models.py:3281 +#: part/models.py:3282 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3322 +#: part/models.py:3323 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3330 +#: part/models.py:3331 msgid "Parameter Name" msgstr "" -#: part/models.py:3334 +#: part/models.py:3335 msgid "Parameter Units" msgstr "" -#: part/models.py:3339 +#: part/models.py:3340 msgid "Parameter description" msgstr "" -#: part/models.py:3372 +#: part/models.py:3373 msgid "Parent Part" msgstr "" -#: part/models.py:3374 part/models.py:3422 part/models.py:3423 +#: part/models.py:3375 part/models.py:3423 part/models.py:3424 #: templates/InvenTree/settings/settings_staff_js.html:199 msgid "Parameter Template" msgstr "" -#: part/models.py:3376 +#: part/models.py:3377 msgid "Data" msgstr "" -#: part/models.py:3376 +#: part/models.py:3377 msgid "Parameter Value" msgstr "" -#: part/models.py:3427 templates/InvenTree/settings/settings_staff_js.html:208 +#: part/models.py:3428 templates/InvenTree/settings/settings_staff_js.html:208 msgid "Default Value" msgstr "" -#: part/models.py:3428 +#: part/models.py:3429 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3465 +#: part/models.py:3466 msgid "Part ID or part name" msgstr "" -#: part/models.py:3469 +#: part/models.py:3470 msgid "Unique part ID value" msgstr "" -#: part/models.py:3477 +#: part/models.py:3478 msgid "Part IPN value" msgstr "" -#: part/models.py:3480 +#: part/models.py:3481 msgid "Level" msgstr "" -#: part/models.py:3481 +#: part/models.py:3482 msgid "BOM level" msgstr "" -#: part/models.py:3565 +#: part/models.py:3566 msgid "Select parent part" msgstr "" -#: part/models.py:3573 +#: part/models.py:3574 msgid "Sub part" msgstr "" -#: part/models.py:3574 +#: part/models.py:3575 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3580 +#: part/models.py:3581 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3584 part/templates/part/upload_bom.html:58 +#: part/models.py:3585 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:941 templates/js/translated/bom.js:994 -#: templates/js/translated/build.js:2052 +#: templates/js/translated/build.js:2056 #: templates/js/translated/table_filters.js:152 #: templates/js/translated/table_filters.js:181 #: templates/js/translated/table_filters.js:485 msgid "Optional" msgstr "" -#: part/models.py:3585 +#: part/models.py:3586 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3590 templates/js/translated/bom.js:937 -#: templates/js/translated/bom.js:1003 templates/js/translated/build.js:2043 +#: part/models.py:3591 templates/js/translated/bom.js:937 +#: templates/js/translated/bom.js:1003 templates/js/translated/build.js:2047 #: templates/js/translated/table_filters.js:156 #: templates/js/translated/table_filters.js:481 msgid "Consumable" msgstr "" -#: part/models.py:3591 +#: part/models.py:3592 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3595 part/templates/part/upload_bom.html:55 +#: part/models.py:3596 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3596 +#: part/models.py:3597 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3599 +#: part/models.py:3600 msgid "BOM item reference" msgstr "" -#: part/models.py:3602 +#: part/models.py:3603 msgid "BOM item notes" msgstr "" -#: part/models.py:3606 +#: part/models.py:3607 msgid "Checksum" msgstr "" -#: part/models.py:3606 +#: part/models.py:3607 msgid "BOM line checksum" msgstr "" -#: part/models.py:3611 templates/js/translated/table_filters.js:140 +#: part/models.py:3612 templates/js/translated/table_filters.js:140 msgid "Validated" msgstr "" -#: part/models.py:3612 +#: part/models.py:3613 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3617 part/templates/part/upload_bom.html:57 +#: part/models.py:3618 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1020 #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:177 msgid "Gets inherited" msgstr "" -#: part/models.py:3618 +#: part/models.py:3619 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3623 part/templates/part/upload_bom.html:56 +#: part/models.py:3624 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1012 msgid "Allow Variants" msgstr "" -#: part/models.py:3624 +#: part/models.py:3625 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3710 stock/models.py:576 +#: part/models.py:3711 stock/models.py:577 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3719 part/models.py:3721 +#: part/models.py:3720 part/models.py:3722 msgid "Sub part must be specified" msgstr "" -#: part/models.py:3837 +#: part/models.py:3838 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3858 +#: part/models.py:3859 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3871 +#: part/models.py:3872 msgid "Parent BOM item" msgstr "" -#: part/models.py:3879 +#: part/models.py:3880 msgid "Substitute part" msgstr "" -#: part/models.py:3894 +#: part/models.py:3895 msgid "Part 1" msgstr "" -#: part/models.py:3898 +#: part/models.py:3899 msgid "Part 2" msgstr "" -#: part/models.py:3898 +#: part/models.py:3899 msgid "Select Related Part" msgstr "" -#: part/models.py:3916 +#: part/models.py:3917 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:3920 +#: part/models.py:3921 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:162 part/serializers.py:185 stock/serializers.py:256 +#: part/serializers.py:162 part/serializers.py:185 stock/serializers.py:257 msgid "Purchase currency of this stock item" msgstr "" @@ -6468,7 +6485,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:29 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/stock.js:1913 users/models.py:39 +#: templates/js/translated/stock.js:1916 users/models.py:39 msgid "Stocktake" msgstr "" @@ -6609,13 +6626,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312 -#: templates/js/translated/order.js:112 templates/js/translated/tables.js:183 +#: templates/js/translated/order.js:113 templates/js/translated/tables.js:183 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313 -#: templates/js/translated/order.js:113 +#: templates/js/translated/order.js:114 msgid "Select file format" msgstr "" @@ -6721,12 +6738,12 @@ msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:220 -#: stock/templates/stock/item_base.html:378 +#: stock/templates/stock/item_base.html:384 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:229 -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 msgid "Allocated to Sales Orders" msgstr "" @@ -6838,7 +6855,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:1182 templates/js/translated/part.js:1769 #: templates/js/translated/part.js:1925 templates/js/translated/stock.js:986 -#: templates/js/translated/stock.js:1790 templates/navbar.html:31 +#: templates/js/translated/stock.js:1793 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -6868,10 +6885,10 @@ msgid "Refresh Part Pricing" msgstr "" #: part/templates/part/prices.html:25 stock/admin.py:129 -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:442 #: templates/js/translated/company.js:1291 #: templates/js/translated/company.js:1301 -#: templates/js/translated/stock.js:1943 +#: templates/js/translated/stock.js:1946 msgid "Last Updated" msgstr "" @@ -6939,7 +6956,7 @@ msgstr "" msgid "No Stock" msgstr "" -#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:168 +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:167 msgid "Low Stock" msgstr "" @@ -7356,11 +7373,11 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:30 #: report/templates/report/inventree_so_report_base.html:30 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:513 +#: templates/js/translated/order.js:298 templates/js/translated/pricing.js:513 #: templates/js/translated/pricing.js:582 #: templates/js/translated/pricing.js:806 #: templates/js/translated/purchase_order.js:2042 -#: templates/js/translated/sales_order.js:1768 +#: templates/js/translated/sales_order.js:1787 msgid "Unit Price" msgstr "" @@ -7373,21 +7390,21 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 #: templates/js/translated/purchase_order.js:1944 -#: templates/js/translated/sales_order.js:1743 +#: templates/js/translated/sales_order.js:1762 msgid "Total" msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:724 stock/templates/stock/item_base.html:312 -#: templates/js/translated/build.js:472 templates/js/translated/build.js:1362 -#: templates/js/translated/build.js:1928 +#: stock/models.py:725 stock/templates/stock/item_base.html:312 +#: templates/js/translated/build.js:472 templates/js/translated/build.js:1366 +#: templates/js/translated/build.js:1932 #: templates/js/translated/model_renderers.js:198 #: templates/js/translated/return_order.js:508 #: templates/js/translated/return_order.js:688 -#: templates/js/translated/sales_order.js:264 -#: templates/js/translated/sales_order.js:1548 -#: templates/js/translated/sales_order.js:1633 +#: templates/js/translated/sales_order.js:267 +#: templates/js/translated/sales_order.js:1567 +#: templates/js/translated/sales_order.js:1652 #: templates/js/translated/stock.js:527 msgid "Serial Number" msgstr "" @@ -7401,12 +7418,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2216 templates/js/translated/stock.js:1383 +#: stock/models.py:2240 templates/js/translated/stock.js:1383 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2222 +#: stock/models.py:2246 msgid "Result" msgstr "" @@ -7433,7 +7450,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:168 #: stock/admin.py:104 templates/js/translated/stock.js:631 -#: templates/js/translated/stock.js:802 templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:802 templates/js/translated/stock.js:2813 msgid "Serial" msgstr "" @@ -7474,7 +7491,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:114 stock/models.py:707 +#: stock/admin.py:114 stock/models.py:708 #: stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" @@ -7499,54 +7516,54 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:131 stock/models.py:780 -#: stock/templates/stock/item_base.html:423 -#: templates/js/translated/stock.js:1927 +#: stock/admin.py:131 stock/models.py:789 +#: stock/templates/stock/item_base.html:429 +#: templates/js/translated/stock.js:1930 msgid "Expiry Date" msgstr "" -#: stock/api.py:418 templates/js/translated/table_filters.js:369 +#: stock/api.py:419 templates/js/translated/table_filters.js:369 msgid "External Location" msgstr "" -#: stock/api.py:579 +#: stock/api.py:580 msgid "Quantity is required" msgstr "" -#: stock/api.py:586 +#: stock/api.py:587 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:612 +#: stock/api.py:613 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:621 +#: stock/api.py:622 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:640 +#: stock/api.py:641 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:54 stock/models.py:691 +#: stock/models.py:54 stock/models.py:692 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" #: stock/models.py:55 stock/templates/stock/location.html:177 -#: templates/InvenTree/search.html:167 templates/js/translated/search.js:208 +#: templates/InvenTree/search.html:166 templates/js/translated/search.js:208 #: users/models.py:40 msgid "Stock Locations" msgstr "" -#: stock/models.py:118 stock/models.py:819 +#: stock/models.py:118 stock/models.py:828 #: stock/templates/stock/item_base.html:248 msgid "Owner" msgstr "" -#: stock/models.py:119 stock/models.py:820 +#: stock/models.py:119 stock/models.py:829 msgid "Select Owner" msgstr "" @@ -7554,7 +7571,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:132 templates/js/translated/stock.js:2490 +#: stock/models.py:132 templates/js/translated/stock.js:2493 #: templates/js/translated/table_filters.js:209 msgid "External" msgstr "" @@ -7567,213 +7584,221 @@ msgstr "" msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:556 +#: stock/models.py:557 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:582 stock/serializers.py:173 +#: stock/models.py:583 stock/serializers.py:174 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:599 +#: stock/models.py:600 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:609 stock/models.py:618 +#: stock/models.py:610 stock/models.py:619 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:610 +#: stock/models.py:611 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:632 +#: stock/models.py:633 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:638 +#: stock/models.py:639 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:652 +#: stock/models.py:653 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:666 +#: stock/models.py:667 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:676 +#: stock/models.py:677 msgid "Base part" msgstr "" -#: stock/models.py:684 +#: stock/models.py:685 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:694 +#: stock/models.py:695 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:701 +#: stock/models.py:702 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:710 +#: stock/models.py:711 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:726 +#: stock/models.py:727 msgid "Serial number for this item" msgstr "" -#: stock/models.py:740 +#: stock/models.py:741 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:745 +#: stock/models.py:746 msgid "Stock Quantity" msgstr "" -#: stock/models.py:752 +#: stock/models.py:753 msgid "Source Build" msgstr "" -#: stock/models.py:754 +#: stock/models.py:755 msgid "Build for this stock item" msgstr "" -#: stock/models.py:765 -msgid "Source Purchase Order" +#: stock/models.py:761 stock/templates/stock/item_base.html:364 +msgid "Consumed By" msgstr "" -#: stock/models.py:768 -msgid "Purchase order for this stock item" +#: stock/models.py:763 +msgid "Build order which consumed this stock item" msgstr "" #: stock/models.py:774 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:777 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:783 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:781 +#: stock/models.py:790 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:796 +#: stock/models.py:805 msgid "Delete on deplete" msgstr "" -#: stock/models.py:796 +#: stock/models.py:805 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:815 +#: stock/models.py:824 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:843 +#: stock/models.py:852 msgid "Converted to part" msgstr "" -#: stock/models.py:1361 +#: stock/models.py:1377 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1367 +#: stock/models.py:1383 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1373 +#: stock/models.py:1389 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1376 +#: stock/models.py:1392 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1379 +#: stock/models.py:1395 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 stock/serializers.py:373 +#: stock/models.py:1402 stock/serializers.py:374 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1457 +#: stock/models.py:1473 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1460 +#: stock/models.py:1476 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1463 +#: stock/models.py:1479 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1466 +#: stock/models.py:1482 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1469 +#: stock/models.py:1485 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1472 +#: stock/models.py:1488 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1479 stock/serializers.py:974 +#: stock/models.py:1495 stock/serializers.py:975 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1483 +#: stock/models.py:1499 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1487 +#: stock/models.py:1503 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1491 +#: stock/models.py:1507 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1660 +#: stock/models.py:1676 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2134 +#: stock/models.py:2158 msgid "Entry notes" msgstr "" -#: stock/models.py:2192 +#: stock/models.py:2216 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2198 +#: stock/models.py:2222 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2217 +#: stock/models.py:2241 msgid "Test name" msgstr "" -#: stock/models.py:2223 +#: stock/models.py:2247 msgid "Test result" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2253 msgid "Test output value" msgstr "" -#: stock/models.py:2236 +#: stock/models.py:2260 msgid "Test result attachment" msgstr "" -#: stock/models.py:2242 +#: stock/models.py:2266 msgid "Test notes" msgstr "" @@ -7781,128 +7806,128 @@ msgstr "" msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:165 +#: stock/serializers.py:166 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:253 +#: stock/serializers.py:254 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:307 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:318 +#: stock/serializers.py:319 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:324 +#: stock/serializers.py:325 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:335 stock/serializers.py:931 stock/serializers.py:1173 +#: stock/serializers.py:336 stock/serializers.py:932 stock/serializers.py:1174 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:342 +#: stock/serializers.py:343 msgid "Optional note field" msgstr "" -#: stock/serializers.py:352 +#: stock/serializers.py:353 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:413 +#: stock/serializers.py:414 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:426 +#: stock/serializers.py:427 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:433 +#: stock/serializers.py:434 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:470 +#: stock/serializers.py:471 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:475 stock/serializers.py:556 +#: stock/serializers.py:476 stock/serializers.py:557 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:509 +#: stock/serializers.py:510 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:520 +#: stock/serializers.py:521 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:551 +#: stock/serializers.py:552 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:786 +#: stock/serializers.py:787 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:791 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:794 +#: stock/serializers.py:795 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:825 +#: stock/serializers.py:826 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:831 +#: stock/serializers.py:832 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:839 +#: stock/serializers.py:840 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:849 stock/serializers.py:1080 +#: stock/serializers.py:850 stock/serializers.py:1081 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:938 +#: stock/serializers.py:939 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:943 +#: stock/serializers.py:944 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:944 +#: stock/serializers.py:945 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:949 +#: stock/serializers.py:950 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:950 +#: stock/serializers.py:951 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:960 +#: stock/serializers.py:961 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1042 +#: stock/serializers.py:1043 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1070 +#: stock/serializers.py:1071 msgid "Stock transaction notes" msgstr "" @@ -7943,7 +7968,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2957 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2960 msgid "Install Stock Item" msgstr "" @@ -8096,77 +8121,77 @@ msgstr "" msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:388 -#: templates/js/translated/build.js:1954 +#: stock/templates/stock/item_base.html:394 +#: templates/js/translated/build.js:1958 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:403 +#: stock/templates/stock/item_base.html:409 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:415 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:427 +#: stock/templates/stock/item_base.html:433 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:427 +#: stock/templates/stock/item_base.html:433 #: templates/js/translated/table_filters.js:377 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:429 +#: stock/templates/stock/item_base.html:435 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:429 +#: stock/templates/stock/item_base.html:435 #: templates/js/translated/table_filters.js:383 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:445 +#: stock/templates/stock/item_base.html:451 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:497 -#: templates/js/translated/stock.js:1706 +#: stock/templates/stock/item_base.html:503 +#: templates/js/translated/stock.js:1709 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:522 +#: stock/templates/stock/item_base.html:528 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:531 +#: stock/templates/stock/item_base.html:537 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:542 +#: stock/templates/stock/item_base.html:548 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:612 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:609 +#: stock/templates/stock/item_base.html:615 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:610 +#: stock/templates/stock/item_base.html:616 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:618 +#: stock/templates/stock/item_base.html:624 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:648 +#: stock/templates/stock/item_base.html:654 msgid "Return to Stock" msgstr "" @@ -8241,7 +8266,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:287 -#: templates/js/translated/stock.js:2279 +#: templates/js/translated/stock.js:2282 msgid "stock location" msgstr "" @@ -8347,51 +8372,51 @@ msgstr "" msgid "Recently Updated" msgstr "" -#: templates/InvenTree/index.html:181 +#: templates/InvenTree/index.html:180 msgid "Depleted Stock" msgstr "" -#: templates/InvenTree/index.html:194 +#: templates/InvenTree/index.html:193 msgid "Required for Build Orders" msgstr "" -#: templates/InvenTree/index.html:209 +#: templates/InvenTree/index.html:208 msgid "Expired Stock" msgstr "" -#: templates/InvenTree/index.html:223 +#: templates/InvenTree/index.html:222 msgid "Stale Stock" msgstr "" -#: templates/InvenTree/index.html:248 +#: templates/InvenTree/index.html:247 msgid "Build Orders In Progress" msgstr "" -#: templates/InvenTree/index.html:259 +#: templates/InvenTree/index.html:258 msgid "Overdue Build Orders" msgstr "" -#: templates/InvenTree/index.html:279 +#: templates/InvenTree/index.html:278 msgid "Outstanding Purchase Orders" msgstr "" -#: templates/InvenTree/index.html:290 +#: templates/InvenTree/index.html:289 msgid "Overdue Purchase Orders" msgstr "" -#: templates/InvenTree/index.html:311 +#: templates/InvenTree/index.html:310 msgid "Outstanding Sales Orders" msgstr "" -#: templates/InvenTree/index.html:322 +#: templates/InvenTree/index.html:321 msgid "Overdue Sales Orders" msgstr "" -#: templates/InvenTree/index.html:348 +#: templates/InvenTree/index.html:347 msgid "InvenTree News" msgstr "" -#: templates/InvenTree/index.html:350 +#: templates/InvenTree/index.html:349 msgid "Current News" msgstr "" @@ -8858,165 +8883,149 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:12 +#: templates/InvenTree/settings/user.html:13 msgid "Account Settings" msgstr "" -#: templates/InvenTree/settings/user.html:18 +#: templates/InvenTree/settings/user.html:19 #: templates/account/password_reset_from_key.html:4 #: templates/account/password_reset_from_key.html:7 msgid "Change Password" msgstr "" -#: templates/InvenTree/settings/user.html:23 +#: templates/InvenTree/settings/user.html:24 #: templates/js/translated/helpers.js:54 templates/js/translated/pricing.js:614 #: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: templates/InvenTree/settings/user.html:32 +#: templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: templates/InvenTree/settings/user.html:36 +#: templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: templates/InvenTree/settings/user.html:40 +#: templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:54 +#: templates/InvenTree/settings/user.html:55 msgid "The following email addresses are associated with your account:" msgstr "" -#: templates/InvenTree/settings/user.html:75 +#: templates/InvenTree/settings/user.html:76 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:77 +#: templates/InvenTree/settings/user.html:78 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:79 +#: templates/InvenTree/settings/user.html:80 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:85 +#: templates/InvenTree/settings/user.html:86 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:86 +#: templates/InvenTree/settings/user.html:87 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:96 +#: templates/InvenTree/settings/user.html:97 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." msgstr "" -#: templates/InvenTree/settings/user.html:104 +#: templates/InvenTree/settings/user.html:105 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:109 +#: templates/InvenTree/settings/user.html:110 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:117 -msgid "Social Accounts" -msgstr "" - -#: templates/InvenTree/settings/user.html:122 -msgid "You can sign in to your account using any of the following third party accounts:" -msgstr "" - -#: templates/InvenTree/settings/user.html:158 -msgid "There are no social network accounts connected to this account." -msgstr "" - -#: templates/InvenTree/settings/user.html:164 -msgid "Add a 3rd Party Account" -msgstr "" - -#: templates/InvenTree/settings/user.html:174 +#: templates/InvenTree/settings/user.html:120 msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:179 +#: templates/InvenTree/settings/user.html:125 msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:135 msgid "TOTP" msgstr "" -#: templates/InvenTree/settings/user.html:195 +#: templates/InvenTree/settings/user.html:141 msgid "Static" msgstr "" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:150 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: templates/InvenTree/settings/user.html:211 +#: templates/InvenTree/settings/user.html:157 msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:212 +#: templates/InvenTree/settings/user.html:158 msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user.html:160 msgid "Remove multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:222 +#: templates/InvenTree/settings/user.html:168 msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:228 +#: templates/InvenTree/settings/user.html:174 msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:229 +#: templates/InvenTree/settings/user.html:175 msgid "Log Out Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:238 +#: templates/InvenTree/settings/user.html:184 msgid "unknown on unknown" msgstr "" -#: templates/InvenTree/settings/user.html:239 +#: templates/InvenTree/settings/user.html:185 msgid "unknown" msgstr "" -#: templates/InvenTree/settings/user.html:243 +#: templates/InvenTree/settings/user.html:189 msgid "IP Address" msgstr "" -#: templates/InvenTree/settings/user.html:244 +#: templates/InvenTree/settings/user.html:190 msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:245 +#: templates/InvenTree/settings/user.html:191 msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:258 +#: templates/InvenTree/settings/user.html:204 #, python-format msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:260 +#: templates/InvenTree/settings/user.html:206 #, python-format msgid "%(time)s ago" msgstr "" -#: templates/InvenTree/settings/user.html:272 +#: templates/InvenTree/settings/user.html:218 msgid "Do you really want to remove the selected email address?" msgstr "" @@ -9093,6 +9102,26 @@ msgstr "" msgid "Search Settings" msgstr "" +#: templates/InvenTree/settings/user_sso.html:9 +msgid "Single Sign On Accounts" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:16 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:52 +msgid "There are no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:58 +msgid "Add SSO Account" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:67 +msgid "Single Sign On is not enabled for this server" +msgstr "" + #: templates/about.html:9 msgid "InvenTree Version" msgstr "" @@ -9174,7 +9203,7 @@ msgid "This email confirmation link expired or is invalid. Please As a final step, please complete the following form:" msgstr "" +#: templates/socialaccount/snippets/provider_list.html:26 +msgid "Provider has not been configured" +msgstr "" + +#: templates/socialaccount/snippets/provider_list.html:35 +msgid "No SSO providers have been configured" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 60f7e7eb5d..5690969921 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -105,75 +105,75 @@ msgstr "La dirección de correo electrónico principal proporcionada no es váli msgid "The provided email domain is not approved." msgstr "El dominio de correo electrónico proporcionado no está aprobado." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Error de conexión" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "El servidor respondió con código de estado no válido" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Se ha producido una excepción" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "El servidor respondió con un valor de longitud de contenido inválido" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "El tamaño de la imagen es demasiado grande" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "La descarga de imagen excedió el tamaño máximo" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "El servidor remoto devolvió una respuesta vacía" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "No se ha proporcionado un número de serie" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Serie duplicada" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Rango de grupo no válido: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "El rango del grupo {g} supera la cantidad permitida ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Secuencia de grupo no válida: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Numeros de serie no encontrados" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Eliminar etiquetas HTML de este valor" diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 4d265c6f0f..5d79908a03 100644 --- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-14 09:15+0000\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,25 +35,25 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:204 InvenTree/models.py:764 build/serializers.py:387 -#: build/serializers.py:464 build/templates/build/sidebar.html:21 -#: company/models.py:556 company/templates/company/sidebar.html:35 +#: build/serializers.py:464 build/templates/build/sidebar.html:23 +#: company/models.py:557 company/templates/company/sidebar.html:35 #: order/models.py:1086 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:2986 part/templates/part/part_sidebar.html:63 +#: part/models.py:2987 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2133 stock/models.py:2241 -#: stock/serializers.py:341 stock/serializers.py:474 stock/serializers.py:555 -#: stock/serializers.py:838 stock/serializers.py:937 stock/serializers.py:1069 +#: stock/admin.py:121 stock/models.py:2157 stock/models.py:2265 +#: stock/serializers.py:342 stock/serializers.py:475 stock/serializers.py:556 +#: stock/serializers.py:839 stock/serializers.py:938 stock/serializers.py:1070 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:130 templates/js/translated/bom.js:1220 -#: templates/js/translated/company.js:1272 templates/js/translated/order.js:322 +#: templates/js/translated/company.js:1272 templates/js/translated/order.js:329 #: templates/js/translated/part.js:1020 #: templates/js/translated/purchase_order.js:2127 #: templates/js/translated/return_order.js:740 -#: templates/js/translated/sales_order.js:1003 -#: templates/js/translated/sales_order.js:1910 -#: templates/js/translated/stock.js:1424 templates/js/translated/stock.js:2125 +#: templates/js/translated/sales_order.js:1022 +#: templates/js/translated/sales_order.js:1929 +#: templates/js/translated/stock.js:1424 templates/js/translated/stock.js:2128 msgid "Notes" msgstr "" @@ -106,75 +106,75 @@ msgstr "" msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" @@ -222,7 +222,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:484 stock/models.py:2235 +#: InvenTree/models.py:484 stock/models.py:2259 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -233,23 +233,23 @@ msgid "Select file to attach" msgstr "" #: InvenTree/models.py:491 common/models.py:2671 company/models.py:130 -#: company/models.py:304 company/models.py:543 order/models.py:232 -#: order/models.py:1090 order/models.py:1438 part/admin.py:39 -#: part/models.py:897 part/templates/part/part_scheduling.html:11 +#: company/models.py:304 company/models.py:544 order/models.py:232 +#: order/models.py:1090 order/models.py:1450 part/admin.py:39 +#: part/models.py:898 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:120 templates/js/translated/company.js:962 -#: templates/js/translated/company.js:1261 templates/js/translated/order.js:326 +#: templates/js/translated/company.js:1261 templates/js/translated/order.js:333 #: templates/js/translated/part.js:1957 #: templates/js/translated/purchase_order.js:1967 #: templates/js/translated/purchase_order.js:2131 #: templates/js/translated/return_order.js:744 -#: templates/js/translated/sales_order.js:992 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/sales_order.js:1011 +#: templates/js/translated/sales_order.js:1934 msgid "Link" msgstr "" -#: InvenTree/models.py:492 build/models.py:290 part/models.py:898 -#: stock/models.py:734 +#: InvenTree/models.py:492 build/models.py:290 part/models.py:899 +#: stock/models.py:735 msgid "Link to external URL" msgstr "" @@ -264,11 +264,11 @@ msgstr "" #: InvenTree/models.py:501 InvenTree/models.py:502 common/models.py:2120 #: common/models.py:2121 common/models.py:2344 common/models.py:2345 -#: common/models.py:2601 common/models.py:2602 part/models.py:2994 -#: part/models.py:3082 part/models.py:3161 part/models.py:3181 +#: common/models.py:2601 common/models.py:2602 part/models.py:2995 +#: part/models.py:3083 part/models.py:3162 part/models.py:3182 #: plugin/models.py:221 plugin/models.py:222 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:2734 +#: templates/js/translated/stock.js:2737 msgid "User" msgstr "" @@ -310,8 +310,8 @@ msgid "Invalid choice" msgstr "" #: InvenTree/models.py:646 InvenTree/models.py:647 common/models.py:2330 -#: company/models.py:388 label/models.py:102 part/models.py:843 -#: part/models.py:3329 plugin/models.py:41 report/models.py:159 +#: company/models.py:388 label/models.py:102 part/models.py:844 +#: part/models.py:3330 plugin/models.py:41 report/models.py:159 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:59 @@ -323,18 +323,18 @@ msgstr "" #: templates/js/translated/company.js:856 #: templates/js/translated/company.js:1056 templates/js/translated/part.js:1126 #: templates/js/translated/part.js:1282 templates/js/translated/part.js:2340 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/stock.js:2428 msgid "Name" msgstr "" #: InvenTree/models.py:653 build/models.py:163 #: build/templates/build/detail.html:24 common/models.py:110 -#: company/models.py:310 company/models.py:549 +#: company/models.py:310 company/models.py:550 #: company/templates/company/company_base.html:72 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:109 -#: order/models.py:228 part/admin.py:194 part/admin.py:276 part/models.py:865 -#: part/models.py:3338 part/templates/part/category.html:81 +#: order/models.py:228 order/models.py:1114 part/admin.py:194 part/admin.py:276 +#: part/models.py:866 part/models.py:3339 part/templates/part/category.html:81 #: part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:172 #: report/models.py:586 report/models.py:630 @@ -345,18 +345,19 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:75 #: templates/InvenTree/settings/settings_staff_js.html:333 #: templates/js/translated/bom.js:602 templates/js/translated/bom.js:903 -#: templates/js/translated/build.js:2794 templates/js/translated/company.js:496 +#: templates/js/translated/build.js:2798 templates/js/translated/company.js:496 #: templates/js/translated/company.js:973 -#: templates/js/translated/company.js:1236 templates/js/translated/part.js:1178 -#: templates/js/translated/part.js:1620 templates/js/translated/part.js:1894 -#: templates/js/translated/part.js:2376 templates/js/translated/part.js:2467 +#: templates/js/translated/company.js:1236 templates/js/translated/order.js:280 +#: templates/js/translated/part.js:1178 templates/js/translated/part.js:1620 +#: templates/js/translated/part.js:1894 templates/js/translated/part.js:2376 +#: templates/js/translated/part.js:2467 #: templates/js/translated/purchase_order.js:1625 #: templates/js/translated/purchase_order.js:1771 #: templates/js/translated/purchase_order.js:1949 #: templates/js/translated/return_order.js:282 -#: templates/js/translated/sales_order.js:750 -#: templates/js/translated/stock.js:1403 templates/js/translated/stock.js:1778 -#: templates/js/translated/stock.js:2457 templates/js/translated/stock.js:2529 +#: templates/js/translated/sales_order.js:757 +#: templates/js/translated/stock.js:1403 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2460 templates/js/translated/stock.js:2532 msgid "Description" msgstr "" @@ -369,7 +370,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:669 InvenTree/models.py:670 -#: templates/js/translated/part.js:2385 templates/js/translated/stock.js:2466 +#: templates/js/translated/part.js:2385 templates/js/translated/stock.js:2469 msgid "Path" msgstr "" @@ -405,12 +406,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3698 +#: InvenTree/serializers.py:60 part/models.py:3699 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:90 company/models.py:152 -#: company/templates/company/company_base.html:107 part/models.py:2833 +#: company/templates/company/company_base.html:107 part/models.py:2834 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -633,10 +634,10 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:183 order/models.py:1323 -#: templates/js/translated/sales_order.js:1457 -#: templates/js/translated/sales_order.js:1581 -#: templates/js/translated/sales_order.js:1885 +#: InvenTree/status_codes.py:183 order/models.py:1329 +#: templates/js/translated/sales_order.js:1476 +#: templates/js/translated/sales_order.js:1600 +#: templates/js/translated/sales_order.js:1904 msgid "Shipped" msgstr "" @@ -724,7 +725,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:331 templates/js/translated/stock.js:2204 +#: InvenTree/status_codes.py:331 templates/js/translated/stock.js:2207 msgid "Merged stock items" msgstr "" @@ -752,7 +753,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: InvenTree/status_codes.py:341 +#: InvenTree/status_codes.py:341 templates/js/translated/stock.js:1640 msgid "Consumed by build order" msgstr "" @@ -808,11 +809,11 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:409 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:409 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:421 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:421 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" @@ -841,7 +842,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:884 templates/js/translated/stock.js:2590 +#: templates/js/translated/build.js:888 templates/js/translated/stock.js:2593 msgid "Build Order" msgstr "" @@ -849,7 +850,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:119 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:245 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:244 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/search.js:216 users/models.py:42 @@ -865,18 +866,18 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:355 order/models.py:762 -#: order/models.py:1084 order/models.py:1699 part/admin.py:278 -#: part/models.py:3599 part/templates/part/upload_bom.html:54 +#: order/models.py:1084 order/models.py:1721 part/admin.py:278 +#: part/models.py:3600 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 #: report/templates/report/inventree_so_report_base.html:28 #: templates/js/translated/bom.js:739 templates/js/translated/bom.js:913 -#: templates/js/translated/build.js:2037 templates/js/translated/order.js:272 +#: templates/js/translated/build.js:2041 templates/js/translated/order.js:273 #: templates/js/translated/pricing.js:372 #: templates/js/translated/purchase_order.js:1992 #: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:1749 +#: templates/js/translated/sales_order.js:1768 msgid "Reference" msgstr "" @@ -894,12 +895,12 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:180 build/templates/build/build_base.html:98 -#: build/templates/build/detail.html:29 company/models.py:722 -#: order/models.py:1186 order/models.py:1302 order/models.py:1303 -#: part/models.py:387 part/models.py:2846 part/models.py:2960 -#: part/models.py:3100 part/models.py:3119 part/models.py:3138 -#: part/models.py:3159 part/models.py:3251 part/models.py:3372 -#: part/models.py:3464 part/models.py:3564 part/models.py:3878 +#: build/templates/build/detail.html:29 company/models.py:723 +#: order/models.py:1192 order/models.py:1308 order/models.py:1309 +#: part/models.py:388 part/models.py:2847 part/models.py:2961 +#: part/models.py:3101 part/models.py:3120 part/models.py:3139 +#: part/models.py:3160 part/models.py:3252 part/models.py:3373 +#: part/models.py:3465 part/models.py:3565 part/models.py:3879 #: part/serializers.py:849 part/serializers.py:1252 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -910,7 +911,7 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:27 #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:155 stock/serializers.py:508 +#: stock/serializers.py:156 stock/serializers.py:509 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -918,8 +919,8 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:516 templates/js/translated/bom.js:601 #: templates/js/translated/bom.js:738 templates/js/translated/bom.js:857 -#: templates/js/translated/build.js:1342 templates/js/translated/build.js:1904 -#: templates/js/translated/build.js:2403 templates/js/translated/build.js:2805 +#: templates/js/translated/build.js:1346 templates/js/translated/build.js:1908 +#: templates/js/translated/build.js:2407 templates/js/translated/build.js:2809 #: templates/js/translated/company.js:322 #: templates/js/translated/company.js:807 #: templates/js/translated/company.js:914 @@ -932,14 +933,14 @@ msgstr "" #: templates/js/translated/purchase_order.js:1934 #: templates/js/translated/return_order.js:507 #: templates/js/translated/return_order.js:674 -#: templates/js/translated/sales_order.js:249 -#: templates/js/translated/sales_order.js:1133 -#: templates/js/translated/sales_order.js:1532 -#: templates/js/translated/sales_order.js:1733 +#: templates/js/translated/sales_order.js:252 +#: templates/js/translated/sales_order.js:1152 +#: templates/js/translated/sales_order.js:1551 +#: templates/js/translated/sales_order.js:1752 #: templates/js/translated/stock.js:607 templates/js/translated/stock.js:773 -#: templates/js/translated/stock.js:985 templates/js/translated/stock.js:1734 -#: templates/js/translated/stock.js:2555 templates/js/translated/stock.js:2792 -#: templates/js/translated/stock.js:2929 +#: templates/js/translated/stock.js:985 templates/js/translated/stock.js:1737 +#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2932 msgid "Part" msgstr "" @@ -956,8 +957,8 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:202 build/serializers.py:900 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:2395 +#: templates/js/translated/sales_order.js:1140 msgid "Source Location" msgstr "" @@ -997,8 +998,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:229 order/serializers.py:504 -#: stock/models.py:738 templates/js/translated/purchase_order.js:1058 +#: build/models.py:245 build/serializers.py:229 order/serializers.py:505 +#: stock/models.py:739 templates/js/translated/purchase_order.js:1058 msgid "Batch Code" msgstr "" @@ -1006,10 +1007,10 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:240 part/models.py:1031 +#: build/models.py:252 order/models.py:240 part/models.py:1032 #: part/templates/part/part_base.html:312 #: templates/js/translated/return_order.js:307 -#: templates/js/translated/sales_order.js:775 +#: templates/js/translated/sales_order.js:782 msgid "Creation Date" msgstr "" @@ -1021,8 +1022,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:260 order/models.py:405 order/models.py:1742 -#: templates/js/translated/build.js:2890 +#: build/models.py:260 order/models.py:405 order/models.py:1764 +#: templates/js/translated/build.js:2894 msgid "Completion Date" msgstr "" @@ -1030,7 +1031,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:274 templates/js/translated/build.js:2850 +#: build/models.py:274 templates/js/translated/build.js:2854 msgid "Issued by" msgstr "" @@ -1042,10 +1043,10 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:254 #: order/templates/order/order_base.html:214 #: order/templates/order/return_order_base.html:182 -#: order/templates/order/sales_order_base.html:222 part/models.py:1035 +#: order/templates/order/sales_order_base.html:222 part/models.py:1036 #: part/templates/part/part_base.html:392 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2862 +#: templates/js/translated/build.js:2866 #: templates/js/translated/purchase_order.js:1682 #: templates/js/translated/return_order.js:327 #: templates/js/translated/table_filters.js:446 @@ -1062,7 +1063,7 @@ msgstr "" #: order/templates/order/order_base.html:171 #: order/templates/order/return_order_base.html:146 #: order/templates/order/sales_order_base.html:181 -#: part/templates/part/part_base.html:385 stock/models.py:732 +#: part/templates/part/part_base.html:385 stock/models.py:733 #: stock/templates/stock/item_base.html:201 msgid "External Link" msgstr "" @@ -1105,11 +1106,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1275 order/models.py:1576 +#: build/models.py:1275 order/models.py:1598 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1281 order/models.py:1579 +#: build/models.py:1281 order/models.py:1601 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1121,44 +1122,44 @@ msgstr "" msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1413 stock/templates/stock/item_base.html:170 -#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2778 +#: build/models.py:1422 stock/templates/stock/item_base.html:170 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2782 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1414 +#: build/models.py:1423 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1430 build/serializers.py:749 order/serializers.py:1056 -#: order/serializers.py:1077 stock/serializers.py:412 stock/serializers.py:769 -#: stock/serializers.py:895 stock/templates/stock/item_base.html:10 +#: build/models.py:1439 build/serializers.py:749 order/serializers.py:1060 +#: order/serializers.py:1081 stock/serializers.py:413 stock/serializers.py:770 +#: stock/serializers.py:896 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:195 -#: templates/js/translated/build.js:894 templates/js/translated/build.js:899 -#: templates/js/translated/build.js:2405 templates/js/translated/build.js:2975 -#: templates/js/translated/sales_order.js:250 -#: templates/js/translated/sales_order.js:1134 -#: templates/js/translated/sales_order.js:1433 -#: templates/js/translated/sales_order.js:1438 -#: templates/js/translated/sales_order.js:1539 -#: templates/js/translated/sales_order.js:1629 +#: templates/js/translated/build.js:898 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:2409 templates/js/translated/build.js:2979 +#: templates/js/translated/sales_order.js:253 +#: templates/js/translated/sales_order.js:1153 +#: templates/js/translated/sales_order.js:1452 +#: templates/js/translated/sales_order.js:1457 +#: templates/js/translated/sales_order.js:1558 +#: templates/js/translated/sales_order.js:1648 #: templates/js/translated/stock.js:608 templates/js/translated/stock.js:774 -#: templates/js/translated/stock.js:2675 +#: templates/js/translated/stock.js:2678 msgid "Stock Item" msgstr "" -#: build/models.py:1431 +#: build/models.py:1440 msgid "Source stock item" msgstr "" -#: build/models.py:1443 build/serializers.py:197 +#: build/models.py:1452 build/serializers.py:197 #: build/templates/build/build_base.html:103 #: build/templates/build/detail.html:34 common/models.py:2152 -#: order/models.py:1070 order/models.py:1620 order/serializers.py:1230 +#: order/models.py:1070 order/models.py:1642 order/serializers.py:1234 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277 -#: part/forms.py:47 part/models.py:2973 part/models.py:3580 +#: part/forms.py:47 part/models.py:2974 part/models.py:3581 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1167,18 +1168,18 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:103 stock/serializers.py:305 +#: stock/admin.py:103 stock/serializers.py:306 #: stock/templates/stock/item_base.html:288 #: stock/templates/stock/item_base.html:296 #: stock/templates/stock/item_base.html:343 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:518 templates/js/translated/bom.js:740 #: templates/js/translated/bom.js:921 templates/js/translated/build.js:474 -#: templates/js/translated/build.js:921 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:1930 templates/js/translated/build.js:2406 +#: templates/js/translated/build.js:925 templates/js/translated/build.js:1368 +#: templates/js/translated/build.js:1934 templates/js/translated/build.js:2410 #: templates/js/translated/company.js:1406 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/order.js:279 templates/js/translated/part.js:901 +#: templates/js/translated/order.js:286 templates/js/translated/part.js:901 #: templates/js/translated/part.js:1469 templates/js/translated/part.js:2904 #: templates/js/translated/pricing.js:367 #: templates/js/translated/pricing.js:460 @@ -1187,32 +1188,32 @@ msgstr "" #: templates/js/translated/purchase_order.js:710 #: templates/js/translated/purchase_order.js:1774 #: templates/js/translated/purchase_order.js:1998 -#: templates/js/translated/sales_order.js:266 -#: templates/js/translated/sales_order.js:1135 -#: templates/js/translated/sales_order.js:1452 -#: templates/js/translated/sales_order.js:1545 -#: templates/js/translated/sales_order.js:1635 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:269 +#: templates/js/translated/sales_order.js:1154 +#: templates/js/translated/sales_order.js:1471 +#: templates/js/translated/sales_order.js:1564 +#: templates/js/translated/sales_order.js:1654 +#: templates/js/translated/sales_order.js:1774 #: templates/js/translated/stock.js:495 templates/js/translated/stock.js:633 -#: templates/js/translated/stock.js:804 templates/js/translated/stock.js:2719 -#: templates/js/translated/stock.js:2804 +#: templates/js/translated/stock.js:804 templates/js/translated/stock.js:2722 +#: templates/js/translated/stock.js:2807 msgid "Quantity" msgstr "" -#: build/models.py:1444 +#: build/models.py:1453 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1452 +#: build/models.py:1461 msgid "Install into" msgstr "" -#: build/models.py:1453 +#: build/models.py:1462 msgid "Destination stock item" msgstr "" #: build/serializers.py:148 build/serializers.py:778 -#: templates/js/translated/build.js:1352 +#: templates/js/translated/build.js:1356 msgid "Build Output" msgstr "" @@ -1237,9 +1238,9 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:212 build/serializers.py:769 order/models.py:436 -#: order/serializers.py:377 order/serializers.py:499 part/serializers.py:1094 -#: part/serializers.py:1415 stock/models.py:592 stock/models.py:1370 -#: stock/serializers.py:314 +#: order/serializers.py:378 order/serializers.py:500 part/serializers.py:1094 +#: part/serializers.py:1415 stock/models.py:593 stock/models.py:1386 +#: stock/serializers.py:315 msgid "Quantity must be greater than zero" msgstr "" @@ -1251,8 +1252,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:236 order/serializers.py:512 order/serializers.py:1234 -#: stock/serializers.py:323 templates/js/translated/purchase_order.js:1082 +#: build/serializers.py:236 order/serializers.py:513 order/serializers.py:1238 +#: stock/serializers.py:324 templates/js/translated/purchase_order.js:1082 #: templates/js/translated/stock.js:298 templates/js/translated/stock.js:496 msgid "Serial Numbers" msgstr "" @@ -1269,7 +1270,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:286 stock/api.py:668 +#: build/serializers.py:286 stock/api.py:669 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1277,23 +1278,23 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:375 build/serializers.py:446 order/serializers.py:485 -#: order/serializers.py:606 order/serializers.py:1583 part/serializers.py:861 -#: stock/serializers.py:334 stock/serializers.py:469 stock/serializers.py:550 -#: stock/serializers.py:930 stock/serializers.py:1172 -#: stock/templates/stock/item_base.html:384 +#: build/serializers.py:375 build/serializers.py:446 order/serializers.py:486 +#: order/serializers.py:607 order/serializers.py:1587 part/serializers.py:861 +#: stock/serializers.py:335 stock/serializers.py:470 stock/serializers.py:551 +#: stock/serializers.py:931 stock/serializers.py:1173 +#: stock/templates/stock/item_base.html:390 #: templates/js/translated/barcode.js:517 -#: templates/js/translated/barcode.js:765 templates/js/translated/build.js:906 -#: templates/js/translated/build.js:1945 +#: templates/js/translated/barcode.js:765 templates/js/translated/build.js:910 +#: templates/js/translated/build.js:1949 #: templates/js/translated/purchase_order.js:1107 #: templates/js/translated/purchase_order.js:1197 -#: templates/js/translated/sales_order.js:1445 -#: templates/js/translated/sales_order.js:1556 -#: templates/js/translated/sales_order.js:1564 -#: templates/js/translated/sales_order.js:1643 +#: templates/js/translated/sales_order.js:1464 +#: templates/js/translated/sales_order.js:1575 +#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1662 #: templates/js/translated/stock.js:609 templates/js/translated/stock.js:775 -#: templates/js/translated/stock.js:987 templates/js/translated/stock.js:1898 -#: templates/js/translated/stock.js:2569 +#: templates/js/translated/stock.js:987 templates/js/translated/stock.js:1901 +#: templates/js/translated/stock.js:2572 msgid "Location" msgstr "" @@ -1319,15 +1320,15 @@ msgstr "" #: build/serializers.py:453 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:788 -#: order/models.py:1725 order/serializers.py:522 stock/admin.py:106 -#: stock/templates/stock/item_base.html:417 -#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2834 +#: order/models.py:1747 order/serializers.py:523 stock/admin.py:106 +#: stock/templates/stock/item_base.html:423 +#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2838 #: templates/js/translated/purchase_order.js:1237 #: templates/js/translated/purchase_order.js:1641 #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:767 -#: templates/js/translated/stock.js:1873 templates/js/translated/stock.js:2693 -#: templates/js/translated/stock.js:2820 +#: templates/js/translated/sales_order.js:774 +#: templates/js/translated/stock.js:1876 templates/js/translated/stock.js:2696 +#: templates/js/translated/stock.js:2823 msgid "Status" msgstr "" @@ -1391,7 +1392,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:622 order/serializers.py:259 order/serializers.py:1124 +#: build/serializers.py:622 order/serializers.py:260 order/serializers.py:1128 msgid "Accept Incomplete" msgstr "" @@ -1407,8 +1408,8 @@ msgstr "" msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:672 build/serializers.py:726 part/models.py:3487 -#: part/models.py:3870 +#: build/serializers.py:672 build/serializers.py:726 part/models.py:3488 +#: part/models.py:3871 msgid "BOM Item" msgstr "" @@ -1424,11 +1425,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:755 stock/serializers.py:782 +#: build/serializers.py:755 stock/serializers.py:783 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:804 order/serializers.py:1114 +#: build/serializers.py:804 order/serializers.py:1118 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1445,7 +1446,7 @@ msgstr "" msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:845 order/serializers.py:1398 +#: build/serializers.py:845 order/serializers.py:1402 msgid "Allocation items must be provided" msgstr "" @@ -1609,13 +1610,13 @@ msgstr "" #: order/templates/order/return_order_base.html:165 #: order/templates/order/sales_order_base.html:193 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2882 templates/js/translated/part.js:1488 +#: templates/js/translated/build.js:2886 templates/js/translated/part.js:1488 #: templates/js/translated/purchase_order.js:1658 #: templates/js/translated/purchase_order.js:2074 #: templates/js/translated/return_order.js:315 #: templates/js/translated/return_order.js:715 -#: templates/js/translated/sales_order.js:783 -#: templates/js/translated/sales_order.js:1798 +#: templates/js/translated/sales_order.js:790 +#: templates/js/translated/sales_order.js:1817 msgid "Target Date" msgstr "" @@ -1644,18 +1645,18 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1295 -#: order/models.py:1394 order/models.py:1526 +#: build/templates/build/detail.html:101 order/api.py:1451 order/models.py:1301 +#: order/models.py:1400 order/models.py:1548 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 #: report/templates/report/inventree_so_report_base.html:14 -#: stock/templates/stock/item_base.html:364 +#: stock/templates/stock/item_base.html:370 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:898 -#: templates/js/translated/sales_order.js:717 -#: templates/js/translated/sales_order.js:940 -#: templates/js/translated/stock.js:2622 +#: templates/js/translated/sales_order.js:724 +#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/stock.js:2625 msgid "Sales Order" msgstr "" @@ -1666,7 +1667,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2799 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2803 msgid "Priority" msgstr "" @@ -1694,7 +1695,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1213 +#: build/templates/build/detail.html:49 order/models.py:1219 #: templates/js/translated/purchase_order.js:2116 msgid "Destination" msgstr "" @@ -1709,11 +1710,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:105 #: stock/templates/stock/item_base.html:163 -#: templates/js/translated/build.js:1371 +#: templates/js/translated/build.js:1375 #: templates/js/translated/model_renderers.js:209 #: templates/js/translated/purchase_order.js:1203 -#: templates/js/translated/stock.js:1057 templates/js/translated/stock.js:1887 -#: templates/js/translated/stock.js:2827 +#: templates/js/translated/stock.js:1057 templates/js/translated/stock.js:1890 +#: templates/js/translated/stock.js:2830 #: templates/js/translated/table_filters.js:255 #: templates/js/translated/table_filters.js:346 msgid "Batch" @@ -1723,7 +1724,7 @@ msgstr "" #: order/templates/order/order_base.html:177 #: order/templates/order/return_order_base.html:152 #: order/templates/order/sales_order_base.html:187 -#: templates/js/translated/build.js:2842 +#: templates/js/translated/build.js:2846 msgid "Created" msgstr "" @@ -1735,7 +1736,7 @@ msgstr "" msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:19 msgid "Child Build Orders" msgstr "" @@ -1743,7 +1744,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:183 templates/js/translated/build.js:2215 +#: build/templates/build/detail.html:183 templates/js/translated/build.js:2219 msgid "Unallocate stock" msgstr "" @@ -1835,11 +1836,15 @@ msgstr "" msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:11 +msgid "Consumed Stock" +msgstr "" + +#: build/templates/build/detail.html:300 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:300 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:312 build/templates/build/sidebar.html:21 #: company/templates/company/detail.html:261 #: company/templates/company/manufacturer_part.html:151 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1855,15 +1860,15 @@ msgstr "" msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:315 +#: build/templates/build/detail.html:327 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:479 +#: build/templates/build/detail.html:500 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:480 +#: build/templates/build/detail.html:501 msgid "All untracked stock items have been allocated" msgstr "" @@ -1875,11 +1880,11 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:12 +#: build/templates/build/sidebar.html:14 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/sidebar.html:15 +#: build/templates/build/sidebar.html:17 msgid "Completed Outputs" msgstr "" @@ -1933,7 +1938,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:70 #: templates/js/translated/purchase_order.js:1629 #: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:754 +#: templates/js/translated/sales_order.js:761 #: templates/js/translated/table_filters.js:20 #: templates/project_code_data.html:6 msgid "Project Code" @@ -2222,7 +2227,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1157 part/admin.py:55 part/models.py:3374 +#: common/models.py:1157 part/admin.py:55 part/models.py:3375 #: report/models.py:165 templates/js/translated/table_filters.js:105 #: templates/js/translated/table_filters.js:660 msgid "Template" @@ -2232,7 +2237,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1164 part/admin.py:51 part/admin.py:283 part/models.py:989 +#: common/models.py:1164 part/admin.py:51 part/admin.py:283 part/models.py:990 #: templates/js/translated/bom.js:1594 #: templates/js/translated/table_filters.js:272 #: templates/js/translated/table_filters.js:619 @@ -2243,7 +2248,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1171 part/admin.py:52 part/models.py:995 +#: common/models.py:1171 part/admin.py:52 part/models.py:996 #: templates/js/translated/table_filters.js:627 msgid "Component" msgstr "" @@ -2252,7 +2257,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1178 part/admin.py:53 part/models.py:1006 +#: common/models.py:1178 part/admin.py:53 part/models.py:1007 msgid "Purchaseable" msgstr "" @@ -2260,7 +2265,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1185 part/admin.py:54 part/models.py:1011 +#: common/models.py:1185 part/admin.py:54 part/models.py:1012 #: templates/js/translated/table_filters.js:648 msgid "Salable" msgstr "" @@ -2269,7 +2274,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1192 part/admin.py:56 part/models.py:1001 +#: common/models.py:1192 part/admin.py:56 part/models.py:1002 #: templates/js/translated/table_filters.js:113 #: templates/js/translated/table_filters.js:189 #: templates/js/translated/table_filters.js:664 @@ -2280,7 +2285,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1199 part/admin.py:57 part/models.py:1021 +#: common/models.py:1199 part/admin.py:57 part/models.py:1022 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:109 #: templates/js/translated/table_filters.js:668 @@ -3224,7 +3229,7 @@ msgid "Price break quantity" msgstr "" #: common/models.py:2160 company/serializers.py:435 order/admin.py:43 -#: order/models.py:1123 order/models.py:1914 +#: order/models.py:1129 order/models.py:1936 #: templates/js/translated/company.js:1411 templates/js/translated/part.js:1543 #: templates/js/translated/pricing.js:607 #: templates/js/translated/return_order.js:705 @@ -3247,7 +3252,7 @@ msgstr "" msgid "Name for this webhook" msgstr "" -#: common/models.py:2336 part/admin.py:50 part/models.py:1016 +#: common/models.py:2336 part/admin.py:50 part/models.py:1017 #: plugin/models.py:47 templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:435 @@ -3349,7 +3354,7 @@ msgstr "" msgid "Was this news item read?" msgstr "" -#: common/models.py:2712 company/models.py:141 part/models.py:910 +#: common/models.py:2712 company/models.py:141 part/models.py:911 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3461,7 +3466,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:124 company/templates/company/company_base.html:133 -#: templates/InvenTree/settings/user.html:48 +#: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:644 msgid "Email" msgstr "" @@ -3515,17 +3520,17 @@ msgstr "" #: company/models.py:221 company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:179 templates/js/translated/company.js:473 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:473 msgid "Company" msgstr "" -#: company/models.py:276 company/models.py:514 stock/models.py:674 -#: stock/serializers.py:154 stock/templates/stock/item_base.html:143 +#: company/models.py:276 company/models.py:515 stock/models.py:675 +#: stock/serializers.py:155 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:591 msgid "Base Part" msgstr "" -#: company/models.py:280 company/models.py:518 +#: company/models.py:280 company/models.py:519 msgid "Select part" msgstr "" @@ -3568,7 +3573,7 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:358 company/models.py:382 company/models.py:537 +#: company/models.py:358 company/models.py:382 company/models.py:538 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:218 @@ -3581,7 +3586,7 @@ msgstr "" #: company/models.py:395 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2228 templates/js/translated/company.js:857 +#: stock/models.py:2252 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1291 #: templates/js/translated/stock.js:1410 msgid "Value" @@ -3591,8 +3596,8 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:402 part/admin.py:40 part/models.py:983 -#: part/models.py:3334 part/templates/part/part_base.html:286 +#: company/models.py:402 part/admin.py:40 part/models.py:984 +#: part/models.py:3335 part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings_staff_js.html:327 #: templates/js/translated/company.js:1068 templates/js/translated/part.js:1297 msgid "Units" @@ -3602,11 +3607,11 @@ msgstr "" msgid "Parameter units" msgstr "" -#: company/models.py:482 +#: company/models.py:483 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:524 company/templates/company/company_base.html:82 +#: company/models.py:525 company/templates/company/company_base.html:82 #: company/templates/company/supplier_part.html:130 order/models.py:378 #: order/templates/order/order_base.html:140 part/bom.py:285 part/bom.py:313 #: part/serializers.py:350 stock/templates/stock/item_base.html:225 @@ -3620,11 +3625,11 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:525 +#: company/models.py:526 msgid "Select supplier" msgstr "" -#: company/models.py:530 company/templates/company/supplier_part.html:140 +#: company/models.py:531 company/templates/company/supplier_part.html:140 #: part/bom.py:286 part/bom.py:314 part/serializers.py:356 #: templates/js/translated/company.js:323 templates/js/translated/part.js:1444 #: templates/js/translated/pricing.js:496 @@ -3633,53 +3638,53 @@ msgstr "" msgid "SKU" msgstr "" -#: company/models.py:531 part/serializers.py:356 +#: company/models.py:532 part/serializers.py:356 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:538 +#: company/models.py:539 msgid "Select manufacturer part" msgstr "" -#: company/models.py:544 +#: company/models.py:545 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:550 +#: company/models.py:551 msgid "Supplier part description" msgstr "" -#: company/models.py:555 company/templates/company/supplier_part.html:175 -#: part/admin.py:279 part/models.py:3602 part/templates/part/upload_bom.html:59 +#: company/models.py:556 company/templates/company/supplier_part.html:175 +#: part/admin.py:279 part/models.py:3603 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 #: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:417 +#: stock/serializers.py:418 msgid "Note" msgstr "" -#: company/models.py:559 part/models.py:1907 +#: company/models.py:560 part/models.py:1908 msgid "base cost" msgstr "" -#: company/models.py:559 part/models.py:1907 +#: company/models.py:560 part/models.py:1908 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:561 company/templates/company/supplier_part.html:161 -#: stock/admin.py:119 stock/models.py:700 +#: company/models.py:562 company/templates/company/supplier_part.html:161 +#: stock/admin.py:119 stock/models.py:701 #: stock/templates/stock/item_base.html:241 #: templates/js/translated/company.js:1241 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2124 msgid "Packaging" msgstr "" -#: company/models.py:561 +#: company/models.py:562 msgid "Part packaging" msgstr "" -#: company/models.py:564 company/serializers.py:330 +#: company/models.py:565 company/serializers.py:330 #: company/templates/company/supplier_part.html:168 #: templates/js/translated/company.js:1246 templates/js/translated/part.js:1479 #: templates/js/translated/part.js:1535 @@ -3691,23 +3696,23 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:565 +#: company/models.py:566 msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:571 part/models.py:1909 +#: company/models.py:572 part/models.py:1910 msgid "multiple" msgstr "" -#: company/models.py:571 +#: company/models.py:572 msgid "Order multiple" msgstr "" -#: company/models.py:579 company/templates/company/supplier_part.html:115 +#: company/models.py:580 company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1123 templates/js/translated/build.js:2075 -#: templates/js/translated/build.js:2982 +#: templates/js/translated/bom.js:1123 templates/js/translated/build.js:2079 +#: templates/js/translated/build.js:2986 #: templates/js/translated/model_renderers.js:202 #: templates/js/translated/part.js:636 templates/js/translated/part.js:638 #: templates/js/translated/part.js:643 @@ -3716,15 +3721,15 @@ msgstr "" msgid "Available" msgstr "" -#: company/models.py:580 +#: company/models.py:581 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:584 +#: company/models.py:585 msgid "Availability Updated" msgstr "" -#: company/models.py:585 +#: company/models.py:586 msgid "Date of last update of availability data" msgstr "" @@ -3787,15 +3792,15 @@ msgid "Delete image" msgstr "" #: company/templates/company/company_base.html:87 order/models.py:776 -#: order/models.py:1713 order/templates/order/return_order_base.html:132 -#: order/templates/order/sales_order_base.html:145 stock/models.py:719 -#: stock/models.py:720 stock/serializers.py:824 -#: stock/templates/stock/item_base.html:395 +#: order/models.py:1735 order/templates/order/return_order_base.html:132 +#: order/templates/order/sales_order_base.html:145 stock/models.py:720 +#: stock/models.py:721 stock/serializers.py:825 +#: stock/templates/stock/item_base.html:401 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:480 #: templates/js/translated/return_order.js:264 -#: templates/js/translated/sales_order.js:732 -#: templates/js/translated/stock.js:2657 +#: templates/js/translated/sales_order.js:739 +#: templates/js/translated/stock.js:2660 #: templates/js/translated/table_filters.js:697 msgid "Customer" msgstr "" @@ -3819,8 +3824,8 @@ msgstr "" #: company/templates/company/company_base.html:209 #: part/templates/part/part_base.html:533 -#: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:149 +#: templates/InvenTree/settings/user.html:88 +#: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" @@ -3890,7 +3895,7 @@ msgstr "" #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:35 -#: templates/InvenTree/index.html:276 templates/InvenTree/search.html:200 +#: templates/InvenTree/index.html:275 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:53 #: templates/js/translated/search.js:235 templates/navbar.html:50 #: users/models.py:43 @@ -3913,7 +3918,7 @@ msgstr "" #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:131 part/templates/part/part_sidebar.html:39 -#: templates/InvenTree/index.html:308 templates/InvenTree/search.html:220 +#: templates/InvenTree/index.html:307 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:55 #: templates/js/translated/search.js:249 templates/navbar.html:62 #: users/models.py:44 @@ -3931,7 +3936,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:173 -#: templates/js/translated/build.js:1915 +#: templates/js/translated/build.js:1919 msgid "Assigned Stock" msgstr "" @@ -3974,7 +3979,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: templates/InvenTree/search.html:181 templates/navbar.html:49 +#: templates/InvenTree/search.html:180 templates/navbar.html:49 msgid "Manufacturers" msgstr "" @@ -4006,7 +4011,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/admin.py:60 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/search.html:191 templates/navbar.html:48 +#: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4043,7 +4048,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:226 -#: part/templates/part/detail.html:871 +#: part/templates/part/detail.html:869 msgid "Add Parameter" msgstr "" @@ -4068,11 +4073,11 @@ msgid "Contacts" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:683 +#: company/templates/company/supplier_part.html:24 stock/models.py:684 #: stock/templates/stock/item_base.html:234 #: templates/js/translated/company.js:1195 #: templates/js/translated/purchase_order.js:708 -#: templates/js/translated/stock.js:1977 +#: templates/js/translated/stock.js:1980 msgid "Supplier Part" msgstr "" @@ -4153,7 +4158,7 @@ msgstr "" msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:354 +#: company/templates/company/supplier_part.html:352 msgid "Update Part Availability" msgstr "" @@ -4165,7 +4170,7 @@ msgstr "" #: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1000 -#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2475 +#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2478 #: users/models.py:41 msgid "Stock Items" msgstr "" @@ -4182,7 +4187,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:211 +#: company/views.py:44 templates/InvenTree/search.html:210 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -4281,9 +4286,9 @@ msgstr "" #: order/admin.py:30 order/models.py:69 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 -#: templates/js/translated/order.js:302 +#: templates/js/translated/order.js:309 #: templates/js/translated/purchase_order.js:2052 -#: templates/js/translated/sales_order.js:1778 +#: templates/js/translated/sales_order.js:1797 msgid "Total Price" msgstr "" @@ -4291,7 +4296,7 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:1440 order/models.py:1169 order/models.py:1253 +#: order/api.py:1449 order/models.py:1175 order/models.py:1259 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4301,11 +4306,11 @@ msgstr "" #: templates/js/translated/purchase_order.js:114 #: templates/js/translated/purchase_order.js:709 #: templates/js/translated/purchase_order.js:1596 -#: templates/js/translated/stock.js:1957 templates/js/translated/stock.js:2605 +#: templates/js/translated/stock.js:1960 templates/js/translated/stock.js:2608 msgid "Purchase Order" msgstr "" -#: order/api.py:1444 +#: order/api.py:1453 templates/js/translated/sales_order.js:997 msgid "Unknown" msgstr "" @@ -4333,7 +4338,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:232 order/models.py:1091 order/models.py:1439 +#: order/models.py:232 order/models.py:1091 order/models.py:1451 msgid "Link to external page" msgstr "" @@ -4378,15 +4383,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:399 order/models.py:1736 +#: order/models.py:399 order/models.py:1758 msgid "Issue Date" msgstr "" -#: order/models.py:400 order/models.py:1737 +#: order/models.py:400 order/models.py:1759 msgid "Date order was issued" msgstr "" -#: order/models.py:406 order/models.py:1743 +#: order/models.py:406 order/models.py:1765 msgid "Date order was completed" msgstr "" @@ -4402,17 +4407,17 @@ msgstr "" msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:796 order/models.py:1730 +#: order/models.py:796 order/models.py:1752 msgid "Customer Reference " msgstr "" -#: order/models.py:796 order/models.py:1731 +#: order/models.py:796 order/models.py:1753 msgid "Customer order reference code" msgstr "" -#: order/models.py:798 order/models.py:1399 -#: templates/js/translated/sales_order.js:791 -#: templates/js/translated/sales_order.js:972 +#: order/models.py:798 order/models.py:1405 +#: templates/js/translated/sales_order.js:798 +#: templates/js/translated/sales_order.js:979 msgid "Shipment Date" msgstr "" @@ -4428,7 +4433,7 @@ msgstr "" msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:861 templates/js/translated/sales_order.js:451 +#: order/models.py:861 templates/js/translated/sales_order.js:458 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" @@ -4452,37 +4457,41 @@ msgstr "" msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1114 +#: order/models.py:1115 +msgid "Line item description (optional)" +msgstr "" + +#: order/models.py:1120 msgid "Context" msgstr "" -#: order/models.py:1115 +#: order/models.py:1121 msgid "Additional context for this line" msgstr "" -#: order/models.py:1124 +#: order/models.py:1130 msgid "Unit price" msgstr "" -#: order/models.py:1154 +#: order/models.py:1160 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1162 +#: order/models.py:1168 msgid "deleted" msgstr "" -#: order/models.py:1168 order/models.py:1253 order/models.py:1294 -#: order/models.py:1393 order/models.py:1526 order/models.py:1883 -#: order/models.py:1930 templates/js/translated/sales_order.js:1422 +#: order/models.py:1174 order/models.py:1259 order/models.py:1300 +#: order/models.py:1399 order/models.py:1548 order/models.py:1905 +#: order/models.py:1952 templates/js/translated/sales_order.js:1441 msgid "Order" msgstr "" -#: order/models.py:1187 +#: order/models.py:1193 msgid "Supplier part" msgstr "" -#: order/models.py:1194 order/templates/order/order_base.html:200 +#: order/models.py:1200 order/templates/order/order_base.html:200 #: templates/js/translated/part.js:1527 templates/js/translated/part.js:1559 #: templates/js/translated/purchase_order.js:1235 #: templates/js/translated/purchase_order.js:2096 @@ -4492,326 +4501,334 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1195 +#: order/models.py:1201 msgid "Number of items received" msgstr "" -#: order/models.py:1202 stock/models.py:814 stock/serializers.py:251 +#: order/models.py:1208 stock/models.py:823 stock/serializers.py:252 #: stock/templates/stock/item_base.html:184 -#: templates/js/translated/stock.js:2008 +#: templates/js/translated/stock.js:2011 msgid "Purchase Price" msgstr "" -#: order/models.py:1203 +#: order/models.py:1209 msgid "Unit purchase price" msgstr "" -#: order/models.py:1216 +#: order/models.py:1222 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1282 +#: order/models.py:1288 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1287 +#: order/models.py:1293 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1313 part/templates/part/part_pricing.html:107 +#: order/models.py:1319 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:926 msgid "Sale Price" msgstr "" -#: order/models.py:1314 +#: order/models.py:1320 msgid "Unit sale price" msgstr "" -#: order/models.py:1324 +#: order/models.py:1330 msgid "Shipped quantity" msgstr "" -#: order/models.py:1400 +#: order/models.py:1406 msgid "Date of shipment" msgstr "" -#: order/models.py:1407 +#: order/models.py:1411 templates/js/translated/sales_order.js:991 +msgid "Delivery Date" +msgstr "" + +#: order/models.py:1412 +msgid "Date of delivery of shipment" +msgstr "" + +#: order/models.py:1419 msgid "Checked By" msgstr "" -#: order/models.py:1408 +#: order/models.py:1420 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1415 order/models.py:1602 order/serializers.py:1245 -#: order/serializers.py:1373 templates/js/translated/model_renderers.js:412 +#: order/models.py:1427 order/models.py:1624 order/serializers.py:1249 +#: order/serializers.py:1377 templates/js/translated/model_renderers.js:412 msgid "Shipment" msgstr "" -#: order/models.py:1416 +#: order/models.py:1428 msgid "Shipment number" msgstr "" -#: order/models.py:1424 +#: order/models.py:1436 msgid "Tracking Number" msgstr "" -#: order/models.py:1425 +#: order/models.py:1437 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1432 +#: order/models.py:1444 msgid "Invoice Number" msgstr "" -#: order/models.py:1433 +#: order/models.py:1445 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1451 +#: order/models.py:1467 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1454 +#: order/models.py:1470 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1561 order/models.py:1563 +#: order/models.py:1583 order/models.py:1585 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1567 +#: order/models.py:1589 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1569 +#: order/models.py:1591 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1572 +#: order/models.py:1594 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1582 order/serializers.py:1107 +#: order/models.py:1604 order/serializers.py:1111 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1585 +#: order/models.py:1607 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1586 +#: order/models.py:1608 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1594 +#: order/models.py:1616 msgid "Line" msgstr "" -#: order/models.py:1603 +#: order/models.py:1625 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1616 order/models.py:1891 +#: order/models.py:1638 order/models.py:1913 #: templates/js/translated/return_order.js:686 msgid "Item" msgstr "" -#: order/models.py:1617 +#: order/models.py:1639 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1620 +#: order/models.py:1642 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1700 +#: order/models.py:1722 msgid "Return Order reference" msgstr "" -#: order/models.py:1714 +#: order/models.py:1736 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1725 +#: order/models.py:1747 msgid "Return order status" msgstr "" -#: order/models.py:1876 +#: order/models.py:1898 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1884 order/models.py:1930 +#: order/models.py:1906 order/models.py:1952 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 #: templates/js/translated/return_order.js:249 -#: templates/js/translated/stock.js:2639 +#: templates/js/translated/stock.js:2642 msgid "Return Order" msgstr "" -#: order/models.py:1892 +#: order/models.py:1914 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1897 +#: order/models.py:1919 msgid "Received Date" msgstr "" -#: order/models.py:1898 +#: order/models.py:1920 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1909 templates/js/translated/return_order.js:697 +#: order/models.py:1931 templates/js/translated/return_order.js:697 #: templates/js/translated/table_filters.js:89 msgid "Outcome" msgstr "" -#: order/models.py:1909 +#: order/models.py:1931 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1915 +#: order/models.py:1937 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:245 +#: order/serializers.py:246 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:260 order/serializers.py:1125 +#: order/serializers.py:261 order/serializers.py:1129 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:271 order/serializers.py:1136 +#: order/serializers.py:272 order/serializers.py:1140 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:384 +#: order/serializers.py:385 msgid "Order is not open" msgstr "" -#: order/serializers.py:402 +#: order/serializers.py:403 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:420 +#: order/serializers.py:421 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:425 +#: order/serializers.py:426 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:431 +#: order/serializers.py:432 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:433 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:470 order/serializers.py:1213 +#: order/serializers.py:471 order/serializers.py:1217 msgid "Line Item" msgstr "" -#: order/serializers.py:476 +#: order/serializers.py:477 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:486 order/serializers.py:607 order/serializers.py:1584 +#: order/serializers.py:487 order/serializers.py:608 order/serializers.py:1588 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:505 templates/js/translated/purchase_order.js:1059 +#: order/serializers.py:506 templates/js/translated/purchase_order.js:1059 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:513 templates/js/translated/purchase_order.js:1083 +#: order/serializers.py:514 templates/js/translated/purchase_order.js:1083 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:526 templates/js/translated/barcode.js:41 +#: order/serializers.py:527 templates/js/translated/barcode.js:41 msgid "Barcode" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:528 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:543 +#: order/serializers.py:544 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:570 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:623 order/serializers.py:1599 +#: order/serializers.py:624 order/serializers.py:1603 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:640 +#: order/serializers.py:641 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:651 +#: order/serializers.py:652 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:950 +#: order/serializers.py:951 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1005 +#: order/serializers.py:1008 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1068 order/serializers.py:1222 +#: order/serializers.py:1072 order/serializers.py:1226 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1090 +#: order/serializers.py:1094 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1235 +#: order/serializers.py:1239 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1257 order/serializers.py:1381 +#: order/serializers.py:1261 order/serializers.py:1385 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1260 order/serializers.py:1384 +#: order/serializers.py:1264 order/serializers.py:1388 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1314 +#: order/serializers.py:1318 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1324 +#: order/serializers.py:1328 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1550 +#: order/serializers.py:1554 msgid "Return order line item" msgstr "" -#: order/serializers.py:1557 +#: order/serializers.py:1561 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1560 +#: order/serializers.py:1564 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1592 +#: order/serializers.py:1596 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1673 +#: order/serializers.py:1677 msgid "Line price currency" msgstr "" @@ -5000,11 +5017,11 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:102 templates/js/translated/build.js:482 -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2291 #: templates/js/translated/purchase_order.js:653 #: templates/js/translated/purchase_order.js:1165 #: templates/js/translated/return_order.js:474 -#: templates/js/translated/sales_order.js:1045 +#: templates/js/translated/sales_order.js:1064 #: templates/js/translated/stock.js:645 templates/js/translated/stock.js:814 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5118,7 +5135,7 @@ msgstr "" #: order/templates/order/return_order_base.html:139 #: order/templates/order/sales_order_base.html:152 #: templates/js/translated/return_order.js:277 -#: templates/js/translated/sales_order.js:745 +#: templates/js/translated/sales_order.js:752 msgid "Customer Reference" msgstr "" @@ -5131,7 +5148,7 @@ msgstr "" #: templates/js/translated/part.js:1012 #: templates/js/translated/purchase_order.js:1671 #: templates/js/translated/return_order.js:349 -#: templates/js/translated/sales_order.js:803 +#: templates/js/translated/sales_order.js:810 msgid "Total Cost" msgstr "" @@ -5157,7 +5174,7 @@ msgid "Ship Items" msgstr "" #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/sales_order.js:429 +#: templates/js/translated/sales_order.js:436 msgid "Complete Sales Order" msgstr "" @@ -5184,13 +5201,13 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:333 +#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:332 msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:75 #: templates/attachment_table.html:6 templates/js/translated/bom.js:1232 -#: templates/js/translated/build.js:2188 +#: templates/js/translated/build.js:2192 msgid "Actions" msgstr "" @@ -5220,12 +5237,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:273 part/models.py:3468 part/tasks.py:285 +#: part/admin.py:33 part/admin.py:273 part/models.py:3469 part/tasks.py:285 #: stock/admin.py:101 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:275 part/models.py:3472 part/tasks.py:286 +#: part/admin.py:34 part/admin.py:275 part/models.py:3473 part/tasks.py:286 #: stock/admin.py:102 msgid "Part Name" msgstr "" @@ -5234,19 +5251,19 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271 +#: part/admin.py:36 part/models.py:886 part/templates/part/part_base.html:271 #: templates/js/translated/part.js:1166 templates/js/translated/part.js:1880 -#: templates/js/translated/stock.js:1756 +#: templates/js/translated/stock.js:1759 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279 +#: part/admin.py:37 part/models.py:893 part/templates/part/part_base.html:279 #: report/models.py:178 templates/js/translated/part.js:1171 #: templates/js/translated/part.js:1886 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:198 part/models.py:871 +#: part/admin.py:38 part/admin.py:198 part/models.py:872 #: part/templates/part/category.html:93 part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" @@ -5267,11 +5284,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179 +#: part/admin.py:46 part/models.py:861 part/templates/part/part_base.html:179 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:976 part/templates/part/part_base.html:205 +#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205 msgid "Minimum Stock" msgstr "" @@ -5282,7 +5299,7 @@ msgid "In Stock" msgstr "" #: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212 -#: templates/js/translated/bom.js:1163 templates/js/translated/build.js:2130 +#: templates/js/translated/bom.js:1163 templates/js/translated/build.js:2134 #: templates/js/translated/part.js:653 templates/js/translated/part.js:1772 #: templates/js/translated/table_filters.js:136 msgid "On Order" @@ -5292,9 +5309,9 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:64 templates/js/translated/build.js:2142 -#: templates/js/translated/build.js:2404 templates/js/translated/build.js:2989 -#: templates/js/translated/sales_order.js:1857 +#: part/admin.py:64 templates/js/translated/build.js:2146 +#: templates/js/translated/build.js:2408 templates/js/translated/build.js:2993 +#: templates/js/translated/sales_order.js:1876 #: templates/js/translated/table_filters.js:473 msgid "Allocated" msgstr "" @@ -5304,11 +5321,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2911 templates/js/translated/part.js:909 +#: part/admin.py:66 part/models.py:2912 templates/js/translated/part.js:909 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2917 templates/js/translated/part.js:919 +#: part/admin.py:67 part/models.py:2918 templates/js/translated/part.js:919 msgid "Maximum Cost" msgstr "" @@ -5325,7 +5342,7 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:202 part/models.py:388 part/templates/part/cat_link.html:3 +#: part/admin.py:202 part/models.py:389 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:23 part/templates/part/category.html:140 #: part/templates/part/category.html:160 #: part/templates/part/category_sidebar.html:9 @@ -5348,7 +5365,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:274 part/models.py:3476 +#: part/admin.py:274 part/models.py:3477 msgid "Part IPN" msgstr "" @@ -5390,7 +5407,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:175 part/models.py:124 part/models.py:919 +#: part/bom.py:175 part/models.py:124 part/models.py:920 #: part/templates/part/category.html:115 part/templates/part/part_base.html:369 msgid "Default Location" msgstr "" @@ -5400,7 +5417,7 @@ msgid "Total Stock" msgstr "" #: part/bom.py:177 part/templates/part/part_base.html:194 -#: templates/js/translated/sales_order.js:1824 +#: templates/js/translated/sales_order.js:1843 msgid "Available Stock" msgstr "" @@ -5408,7 +5425,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:72 part/models.py:3417 part/templates/part/category.html:16 +#: part/models.py:72 part/models.py:3418 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -5423,7 +5440,7 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:130 stock/models.py:124 templates/js/translated/stock.js:2481 +#: part/models.py:130 stock/models.py:124 templates/js/translated/stock.js:2484 #: templates/js/translated/table_filters.js:205 #: templates/js/translated/table_filters.js:225 msgid "Structural" @@ -5453,61 +5470,61 @@ msgstr "" msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:471 +#: part/models.py:472 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:513 part/models.py:525 +#: part/models.py:514 part/models.py:526 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:597 +#: part/models.py:598 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: part/models.py:668 +#: part/models.py:669 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:799 +#: part/models.py:800 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:804 +#: part/models.py:805 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:818 +#: part/models.py:819 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:842 part/models.py:3473 +#: part/models.py:843 part/models.py:3474 msgid "Part name" msgstr "" -#: part/models.py:848 +#: part/models.py:849 msgid "Is Template" msgstr "" -#: part/models.py:849 +#: part/models.py:850 msgid "Is this part a template part?" msgstr "" -#: part/models.py:859 +#: part/models.py:860 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:866 +#: part/models.py:867 msgid "Part description (optional)" msgstr "" -#: part/models.py:872 +#: part/models.py:873 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:879 part/models.py:3179 part/models.py:3416 +#: part/models.py:880 part/models.py:3180 part/models.py:3417 #: part/serializers.py:855 part/templates/part/part_base.html:262 #: templates/InvenTree/settings/settings_staff_js.html:204 #: templates/js/translated/notification.js:50 @@ -5515,249 +5532,249 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:880 +#: part/models.py:881 msgid "Part category" msgstr "" -#: part/models.py:886 +#: part/models.py:887 msgid "Internal Part Number" msgstr "" -#: part/models.py:891 +#: part/models.py:892 msgid "Part revision or version number" msgstr "" -#: part/models.py:917 +#: part/models.py:918 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:962 part/templates/part/part_base.html:378 +#: part/models.py:963 part/templates/part/part_base.html:378 msgid "Default Supplier" msgstr "" -#: part/models.py:963 +#: part/models.py:964 msgid "Default supplier part" msgstr "" -#: part/models.py:970 +#: part/models.py:971 msgid "Default Expiry" msgstr "" -#: part/models.py:971 +#: part/models.py:972 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:977 +#: part/models.py:978 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:984 +#: part/models.py:985 msgid "Units of measure for this part" msgstr "" -#: part/models.py:990 +#: part/models.py:991 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:996 +#: part/models.py:997 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1002 +#: part/models.py:1003 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1008 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1012 +#: part/models.py:1013 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1017 +#: part/models.py:1018 msgid "Is this part active?" msgstr "" -#: part/models.py:1022 +#: part/models.py:1023 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1024 +#: part/models.py:1025 msgid "BOM checksum" msgstr "" -#: part/models.py:1024 +#: part/models.py:1025 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1027 +#: part/models.py:1028 msgid "BOM checked by" msgstr "" -#: part/models.py:1029 +#: part/models.py:1030 msgid "BOM checked date" msgstr "" -#: part/models.py:1033 +#: part/models.py:1034 msgid "Creation User" msgstr "" -#: part/models.py:1035 +#: part/models.py:1036 msgid "User responsible for this part" msgstr "" -#: part/models.py:1039 part/templates/part/part_base.html:341 -#: stock/templates/stock/item_base.html:441 +#: part/models.py:1040 part/templates/part/part_base.html:341 +#: stock/templates/stock/item_base.html:447 #: templates/js/translated/part.js:1972 msgid "Last Stocktake" msgstr "" -#: part/models.py:1909 +#: part/models.py:1910 msgid "Sell multiple" msgstr "" -#: part/models.py:2834 +#: part/models.py:2835 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2851 +#: part/models.py:2852 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2852 +#: part/models.py:2853 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2857 +#: part/models.py:2858 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2858 +#: part/models.py:2859 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2863 +#: part/models.py:2864 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2864 +#: part/models.py:2865 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2870 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2870 +#: part/models.py:2871 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2876 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2876 +#: part/models.py:2877 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2881 +#: part/models.py:2882 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2882 +#: part/models.py:2883 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2887 +#: part/models.py:2888 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2888 +#: part/models.py:2889 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2893 +#: part/models.py:2894 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2894 +#: part/models.py:2895 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2899 +#: part/models.py:2900 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2900 +#: part/models.py:2901 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2905 +#: part/models.py:2906 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2906 +#: part/models.py:2907 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2912 +#: part/models.py:2913 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2918 +#: part/models.py:2919 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2924 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2924 +#: part/models.py:2925 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2929 +#: part/models.py:2930 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2930 +#: part/models.py:2931 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2935 +#: part/models.py:2936 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2936 +#: part/models.py:2937 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2941 +#: part/models.py:2942 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2942 +#: part/models.py:2943 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2961 +#: part/models.py:2962 msgid "Part for stocktake" msgstr "" -#: part/models.py:2966 +#: part/models.py:2967 msgid "Item Count" msgstr "" -#: part/models.py:2967 +#: part/models.py:2968 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2974 +#: part/models.py:2975 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2978 part/models.py:3061 +#: part/models.py:2979 part/models.py:3062 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin.html:62 @@ -5766,305 +5783,305 @@ msgstr "" #: templates/js/translated/part.js:1025 templates/js/translated/pricing.js:798 #: templates/js/translated/pricing.js:919 #: templates/js/translated/purchase_order.js:1650 -#: templates/js/translated/stock.js:2519 +#: templates/js/translated/stock.js:2522 msgid "Date" msgstr "" -#: part/models.py:2979 +#: part/models.py:2980 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:2987 +#: part/models.py:2988 msgid "Additional notes" msgstr "" -#: part/models.py:2995 +#: part/models.py:2996 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3000 +#: part/models.py:3001 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3001 +#: part/models.py:3002 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3006 +#: part/models.py:3007 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3007 +#: part/models.py:3008 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3068 templates/InvenTree/settings/settings_staff_js.html:428 +#: part/models.py:3069 templates/InvenTree/settings/settings_staff_js.html:428 msgid "Report" msgstr "" -#: part/models.py:3069 +#: part/models.py:3070 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3074 templates/InvenTree/settings/settings_staff_js.html:435 +#: part/models.py:3075 templates/InvenTree/settings/settings_staff_js.html:435 msgid "Part Count" msgstr "" -#: part/models.py:3075 +#: part/models.py:3076 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3083 +#: part/models.py:3084 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3219 +#: part/models.py:3220 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3236 +#: part/models.py:3237 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3256 templates/js/translated/part.js:2462 +#: part/models.py:3257 templates/js/translated/part.js:2462 msgid "Test Name" msgstr "" -#: part/models.py:3257 +#: part/models.py:3258 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3262 +#: part/models.py:3263 msgid "Test Description" msgstr "" -#: part/models.py:3263 +#: part/models.py:3264 msgid "Enter description for this test" msgstr "" -#: part/models.py:3268 templates/js/translated/part.js:2471 +#: part/models.py:3269 templates/js/translated/part.js:2471 #: templates/js/translated/table_filters.js:419 msgid "Required" msgstr "" -#: part/models.py:3269 +#: part/models.py:3270 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3274 templates/js/translated/part.js:2479 +#: part/models.py:3275 templates/js/translated/part.js:2479 msgid "Requires Value" msgstr "" -#: part/models.py:3275 +#: part/models.py:3276 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3280 templates/js/translated/part.js:2486 +#: part/models.py:3281 templates/js/translated/part.js:2486 msgid "Requires Attachment" msgstr "" -#: part/models.py:3281 +#: part/models.py:3282 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3322 +#: part/models.py:3323 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3330 +#: part/models.py:3331 msgid "Parameter Name" msgstr "" -#: part/models.py:3334 +#: part/models.py:3335 msgid "Parameter Units" msgstr "" -#: part/models.py:3339 +#: part/models.py:3340 msgid "Parameter description" msgstr "" -#: part/models.py:3372 +#: part/models.py:3373 msgid "Parent Part" msgstr "" -#: part/models.py:3374 part/models.py:3422 part/models.py:3423 +#: part/models.py:3375 part/models.py:3423 part/models.py:3424 #: templates/InvenTree/settings/settings_staff_js.html:199 msgid "Parameter Template" msgstr "" -#: part/models.py:3376 +#: part/models.py:3377 msgid "Data" msgstr "" -#: part/models.py:3376 +#: part/models.py:3377 msgid "Parameter Value" msgstr "" -#: part/models.py:3427 templates/InvenTree/settings/settings_staff_js.html:208 +#: part/models.py:3428 templates/InvenTree/settings/settings_staff_js.html:208 msgid "Default Value" msgstr "" -#: part/models.py:3428 +#: part/models.py:3429 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3465 +#: part/models.py:3466 msgid "Part ID or part name" msgstr "" -#: part/models.py:3469 +#: part/models.py:3470 msgid "Unique part ID value" msgstr "" -#: part/models.py:3477 +#: part/models.py:3478 msgid "Part IPN value" msgstr "" -#: part/models.py:3480 +#: part/models.py:3481 msgid "Level" msgstr "" -#: part/models.py:3481 +#: part/models.py:3482 msgid "BOM level" msgstr "" -#: part/models.py:3565 +#: part/models.py:3566 msgid "Select parent part" msgstr "" -#: part/models.py:3573 +#: part/models.py:3574 msgid "Sub part" msgstr "" -#: part/models.py:3574 +#: part/models.py:3575 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3580 +#: part/models.py:3581 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3584 part/templates/part/upload_bom.html:58 +#: part/models.py:3585 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:941 templates/js/translated/bom.js:994 -#: templates/js/translated/build.js:2052 +#: templates/js/translated/build.js:2056 #: templates/js/translated/table_filters.js:152 #: templates/js/translated/table_filters.js:181 #: templates/js/translated/table_filters.js:485 msgid "Optional" msgstr "" -#: part/models.py:3585 +#: part/models.py:3586 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3590 templates/js/translated/bom.js:937 -#: templates/js/translated/bom.js:1003 templates/js/translated/build.js:2043 +#: part/models.py:3591 templates/js/translated/bom.js:937 +#: templates/js/translated/bom.js:1003 templates/js/translated/build.js:2047 #: templates/js/translated/table_filters.js:156 #: templates/js/translated/table_filters.js:481 msgid "Consumable" msgstr "" -#: part/models.py:3591 +#: part/models.py:3592 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3595 part/templates/part/upload_bom.html:55 +#: part/models.py:3596 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3596 +#: part/models.py:3597 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3599 +#: part/models.py:3600 msgid "BOM item reference" msgstr "" -#: part/models.py:3602 +#: part/models.py:3603 msgid "BOM item notes" msgstr "" -#: part/models.py:3606 +#: part/models.py:3607 msgid "Checksum" msgstr "" -#: part/models.py:3606 +#: part/models.py:3607 msgid "BOM line checksum" msgstr "" -#: part/models.py:3611 templates/js/translated/table_filters.js:140 +#: part/models.py:3612 templates/js/translated/table_filters.js:140 msgid "Validated" msgstr "" -#: part/models.py:3612 +#: part/models.py:3613 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3617 part/templates/part/upload_bom.html:57 +#: part/models.py:3618 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1020 #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:177 msgid "Gets inherited" msgstr "" -#: part/models.py:3618 +#: part/models.py:3619 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3623 part/templates/part/upload_bom.html:56 +#: part/models.py:3624 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1012 msgid "Allow Variants" msgstr "" -#: part/models.py:3624 +#: part/models.py:3625 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3710 stock/models.py:576 +#: part/models.py:3711 stock/models.py:577 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3719 part/models.py:3721 +#: part/models.py:3720 part/models.py:3722 msgid "Sub part must be specified" msgstr "" -#: part/models.py:3837 +#: part/models.py:3838 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3858 +#: part/models.py:3859 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3871 +#: part/models.py:3872 msgid "Parent BOM item" msgstr "" -#: part/models.py:3879 +#: part/models.py:3880 msgid "Substitute part" msgstr "" -#: part/models.py:3894 +#: part/models.py:3895 msgid "Part 1" msgstr "" -#: part/models.py:3898 +#: part/models.py:3899 msgid "Part 2" msgstr "" -#: part/models.py:3898 +#: part/models.py:3899 msgid "Select Related Part" msgstr "" -#: part/models.py:3916 +#: part/models.py:3917 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:3920 +#: part/models.py:3921 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:162 part/serializers.py:185 stock/serializers.py:256 +#: part/serializers.py:162 part/serializers.py:185 stock/serializers.py:257 msgid "Purchase currency of this stock item" msgstr "" @@ -6468,7 +6485,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:29 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/stock.js:1913 users/models.py:39 +#: templates/js/translated/stock.js:1916 users/models.py:39 msgid "Stocktake" msgstr "" @@ -6609,13 +6626,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312 -#: templates/js/translated/order.js:112 templates/js/translated/tables.js:183 +#: templates/js/translated/order.js:113 templates/js/translated/tables.js:183 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313 -#: templates/js/translated/order.js:113 +#: templates/js/translated/order.js:114 msgid "Select file format" msgstr "" @@ -6721,12 +6738,12 @@ msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:220 -#: stock/templates/stock/item_base.html:378 +#: stock/templates/stock/item_base.html:384 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:229 -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 msgid "Allocated to Sales Orders" msgstr "" @@ -6838,7 +6855,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:1182 templates/js/translated/part.js:1769 #: templates/js/translated/part.js:1925 templates/js/translated/stock.js:986 -#: templates/js/translated/stock.js:1790 templates/navbar.html:31 +#: templates/js/translated/stock.js:1793 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -6868,10 +6885,10 @@ msgid "Refresh Part Pricing" msgstr "" #: part/templates/part/prices.html:25 stock/admin.py:129 -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:442 #: templates/js/translated/company.js:1291 #: templates/js/translated/company.js:1301 -#: templates/js/translated/stock.js:1943 +#: templates/js/translated/stock.js:1946 msgid "Last Updated" msgstr "" @@ -6939,7 +6956,7 @@ msgstr "" msgid "No Stock" msgstr "" -#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:168 +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:167 msgid "Low Stock" msgstr "" @@ -7356,11 +7373,11 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:30 #: report/templates/report/inventree_so_report_base.html:30 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:513 +#: templates/js/translated/order.js:298 templates/js/translated/pricing.js:513 #: templates/js/translated/pricing.js:582 #: templates/js/translated/pricing.js:806 #: templates/js/translated/purchase_order.js:2042 -#: templates/js/translated/sales_order.js:1768 +#: templates/js/translated/sales_order.js:1787 msgid "Unit Price" msgstr "" @@ -7373,21 +7390,21 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 #: templates/js/translated/purchase_order.js:1944 -#: templates/js/translated/sales_order.js:1743 +#: templates/js/translated/sales_order.js:1762 msgid "Total" msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:724 stock/templates/stock/item_base.html:312 -#: templates/js/translated/build.js:472 templates/js/translated/build.js:1362 -#: templates/js/translated/build.js:1928 +#: stock/models.py:725 stock/templates/stock/item_base.html:312 +#: templates/js/translated/build.js:472 templates/js/translated/build.js:1366 +#: templates/js/translated/build.js:1932 #: templates/js/translated/model_renderers.js:198 #: templates/js/translated/return_order.js:508 #: templates/js/translated/return_order.js:688 -#: templates/js/translated/sales_order.js:264 -#: templates/js/translated/sales_order.js:1548 -#: templates/js/translated/sales_order.js:1633 +#: templates/js/translated/sales_order.js:267 +#: templates/js/translated/sales_order.js:1567 +#: templates/js/translated/sales_order.js:1652 #: templates/js/translated/stock.js:527 msgid "Serial Number" msgstr "" @@ -7401,12 +7418,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2216 templates/js/translated/stock.js:1383 +#: stock/models.py:2240 templates/js/translated/stock.js:1383 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2222 +#: stock/models.py:2246 msgid "Result" msgstr "" @@ -7433,7 +7450,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:168 #: stock/admin.py:104 templates/js/translated/stock.js:631 -#: templates/js/translated/stock.js:802 templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:802 templates/js/translated/stock.js:2813 msgid "Serial" msgstr "" @@ -7474,7 +7491,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:114 stock/models.py:707 +#: stock/admin.py:114 stock/models.py:708 #: stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" @@ -7499,54 +7516,54 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:131 stock/models.py:780 -#: stock/templates/stock/item_base.html:423 -#: templates/js/translated/stock.js:1927 +#: stock/admin.py:131 stock/models.py:789 +#: stock/templates/stock/item_base.html:429 +#: templates/js/translated/stock.js:1930 msgid "Expiry Date" msgstr "" -#: stock/api.py:418 templates/js/translated/table_filters.js:369 +#: stock/api.py:419 templates/js/translated/table_filters.js:369 msgid "External Location" msgstr "" -#: stock/api.py:579 +#: stock/api.py:580 msgid "Quantity is required" msgstr "" -#: stock/api.py:586 +#: stock/api.py:587 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:612 +#: stock/api.py:613 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:621 +#: stock/api.py:622 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:640 +#: stock/api.py:641 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:54 stock/models.py:691 +#: stock/models.py:54 stock/models.py:692 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" #: stock/models.py:55 stock/templates/stock/location.html:177 -#: templates/InvenTree/search.html:167 templates/js/translated/search.js:208 +#: templates/InvenTree/search.html:166 templates/js/translated/search.js:208 #: users/models.py:40 msgid "Stock Locations" msgstr "" -#: stock/models.py:118 stock/models.py:819 +#: stock/models.py:118 stock/models.py:828 #: stock/templates/stock/item_base.html:248 msgid "Owner" msgstr "" -#: stock/models.py:119 stock/models.py:820 +#: stock/models.py:119 stock/models.py:829 msgid "Select Owner" msgstr "" @@ -7554,7 +7571,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:132 templates/js/translated/stock.js:2490 +#: stock/models.py:132 templates/js/translated/stock.js:2493 #: templates/js/translated/table_filters.js:209 msgid "External" msgstr "" @@ -7567,213 +7584,221 @@ msgstr "" msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:556 +#: stock/models.py:557 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:582 stock/serializers.py:173 +#: stock/models.py:583 stock/serializers.py:174 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:599 +#: stock/models.py:600 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:609 stock/models.py:618 +#: stock/models.py:610 stock/models.py:619 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:610 +#: stock/models.py:611 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:632 +#: stock/models.py:633 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:638 +#: stock/models.py:639 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:652 +#: stock/models.py:653 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:666 +#: stock/models.py:667 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:676 +#: stock/models.py:677 msgid "Base part" msgstr "" -#: stock/models.py:684 +#: stock/models.py:685 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:694 +#: stock/models.py:695 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:701 +#: stock/models.py:702 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:710 +#: stock/models.py:711 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:726 +#: stock/models.py:727 msgid "Serial number for this item" msgstr "" -#: stock/models.py:740 +#: stock/models.py:741 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:745 +#: stock/models.py:746 msgid "Stock Quantity" msgstr "" -#: stock/models.py:752 +#: stock/models.py:753 msgid "Source Build" msgstr "" -#: stock/models.py:754 +#: stock/models.py:755 msgid "Build for this stock item" msgstr "" -#: stock/models.py:765 -msgid "Source Purchase Order" +#: stock/models.py:761 stock/templates/stock/item_base.html:364 +msgid "Consumed By" msgstr "" -#: stock/models.py:768 -msgid "Purchase order for this stock item" +#: stock/models.py:763 +msgid "Build order which consumed this stock item" msgstr "" #: stock/models.py:774 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:777 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:783 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:781 +#: stock/models.py:790 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:796 +#: stock/models.py:805 msgid "Delete on deplete" msgstr "" -#: stock/models.py:796 +#: stock/models.py:805 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:815 +#: stock/models.py:824 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:843 +#: stock/models.py:852 msgid "Converted to part" msgstr "" -#: stock/models.py:1361 +#: stock/models.py:1377 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1367 +#: stock/models.py:1383 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1373 +#: stock/models.py:1389 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1376 +#: stock/models.py:1392 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1379 +#: stock/models.py:1395 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 stock/serializers.py:373 +#: stock/models.py:1402 stock/serializers.py:374 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1457 +#: stock/models.py:1473 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1460 +#: stock/models.py:1476 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1463 +#: stock/models.py:1479 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1466 +#: stock/models.py:1482 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1469 +#: stock/models.py:1485 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1472 +#: stock/models.py:1488 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1479 stock/serializers.py:974 +#: stock/models.py:1495 stock/serializers.py:975 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1483 +#: stock/models.py:1499 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1487 +#: stock/models.py:1503 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1491 +#: stock/models.py:1507 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1660 +#: stock/models.py:1676 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2134 +#: stock/models.py:2158 msgid "Entry notes" msgstr "" -#: stock/models.py:2192 +#: stock/models.py:2216 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2198 +#: stock/models.py:2222 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2217 +#: stock/models.py:2241 msgid "Test name" msgstr "" -#: stock/models.py:2223 +#: stock/models.py:2247 msgid "Test result" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2253 msgid "Test output value" msgstr "" -#: stock/models.py:2236 +#: stock/models.py:2260 msgid "Test result attachment" msgstr "" -#: stock/models.py:2242 +#: stock/models.py:2266 msgid "Test notes" msgstr "" @@ -7781,128 +7806,128 @@ msgstr "" msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:165 +#: stock/serializers.py:166 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:253 +#: stock/serializers.py:254 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:307 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:318 +#: stock/serializers.py:319 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:324 +#: stock/serializers.py:325 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:335 stock/serializers.py:931 stock/serializers.py:1173 +#: stock/serializers.py:336 stock/serializers.py:932 stock/serializers.py:1174 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:342 +#: stock/serializers.py:343 msgid "Optional note field" msgstr "" -#: stock/serializers.py:352 +#: stock/serializers.py:353 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:413 +#: stock/serializers.py:414 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:426 +#: stock/serializers.py:427 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:433 +#: stock/serializers.py:434 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:470 +#: stock/serializers.py:471 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:475 stock/serializers.py:556 +#: stock/serializers.py:476 stock/serializers.py:557 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:509 +#: stock/serializers.py:510 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:520 +#: stock/serializers.py:521 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:551 +#: stock/serializers.py:552 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:786 +#: stock/serializers.py:787 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:791 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:794 +#: stock/serializers.py:795 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:825 +#: stock/serializers.py:826 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:831 +#: stock/serializers.py:832 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:839 +#: stock/serializers.py:840 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:849 stock/serializers.py:1080 +#: stock/serializers.py:850 stock/serializers.py:1081 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:938 +#: stock/serializers.py:939 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:943 +#: stock/serializers.py:944 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:944 +#: stock/serializers.py:945 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:949 +#: stock/serializers.py:950 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:950 +#: stock/serializers.py:951 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:960 +#: stock/serializers.py:961 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1042 +#: stock/serializers.py:1043 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1070 +#: stock/serializers.py:1071 msgid "Stock transaction notes" msgstr "" @@ -7943,7 +7968,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2957 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2960 msgid "Install Stock Item" msgstr "" @@ -8096,77 +8121,77 @@ msgstr "" msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:388 -#: templates/js/translated/build.js:1954 +#: stock/templates/stock/item_base.html:394 +#: templates/js/translated/build.js:1958 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:403 +#: stock/templates/stock/item_base.html:409 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:415 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:427 +#: stock/templates/stock/item_base.html:433 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:427 +#: stock/templates/stock/item_base.html:433 #: templates/js/translated/table_filters.js:377 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:429 +#: stock/templates/stock/item_base.html:435 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:429 +#: stock/templates/stock/item_base.html:435 #: templates/js/translated/table_filters.js:383 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:445 +#: stock/templates/stock/item_base.html:451 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:497 -#: templates/js/translated/stock.js:1706 +#: stock/templates/stock/item_base.html:503 +#: templates/js/translated/stock.js:1709 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:522 +#: stock/templates/stock/item_base.html:528 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:531 +#: stock/templates/stock/item_base.html:537 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:542 +#: stock/templates/stock/item_base.html:548 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:612 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:609 +#: stock/templates/stock/item_base.html:615 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:610 +#: stock/templates/stock/item_base.html:616 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:618 +#: stock/templates/stock/item_base.html:624 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:648 +#: stock/templates/stock/item_base.html:654 msgid "Return to Stock" msgstr "" @@ -8241,7 +8266,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:287 -#: templates/js/translated/stock.js:2279 +#: templates/js/translated/stock.js:2282 msgid "stock location" msgstr "" @@ -8347,51 +8372,51 @@ msgstr "" msgid "Recently Updated" msgstr "" -#: templates/InvenTree/index.html:181 +#: templates/InvenTree/index.html:180 msgid "Depleted Stock" msgstr "" -#: templates/InvenTree/index.html:194 +#: templates/InvenTree/index.html:193 msgid "Required for Build Orders" msgstr "" -#: templates/InvenTree/index.html:209 +#: templates/InvenTree/index.html:208 msgid "Expired Stock" msgstr "" -#: templates/InvenTree/index.html:223 +#: templates/InvenTree/index.html:222 msgid "Stale Stock" msgstr "" -#: templates/InvenTree/index.html:248 +#: templates/InvenTree/index.html:247 msgid "Build Orders In Progress" msgstr "" -#: templates/InvenTree/index.html:259 +#: templates/InvenTree/index.html:258 msgid "Overdue Build Orders" msgstr "" -#: templates/InvenTree/index.html:279 +#: templates/InvenTree/index.html:278 msgid "Outstanding Purchase Orders" msgstr "" -#: templates/InvenTree/index.html:290 +#: templates/InvenTree/index.html:289 msgid "Overdue Purchase Orders" msgstr "" -#: templates/InvenTree/index.html:311 +#: templates/InvenTree/index.html:310 msgid "Outstanding Sales Orders" msgstr "" -#: templates/InvenTree/index.html:322 +#: templates/InvenTree/index.html:321 msgid "Overdue Sales Orders" msgstr "" -#: templates/InvenTree/index.html:348 +#: templates/InvenTree/index.html:347 msgid "InvenTree News" msgstr "" -#: templates/InvenTree/index.html:350 +#: templates/InvenTree/index.html:349 msgid "Current News" msgstr "" @@ -8858,165 +8883,149 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:12 +#: templates/InvenTree/settings/user.html:13 msgid "Account Settings" msgstr "" -#: templates/InvenTree/settings/user.html:18 +#: templates/InvenTree/settings/user.html:19 #: templates/account/password_reset_from_key.html:4 #: templates/account/password_reset_from_key.html:7 msgid "Change Password" msgstr "" -#: templates/InvenTree/settings/user.html:23 +#: templates/InvenTree/settings/user.html:24 #: templates/js/translated/helpers.js:54 templates/js/translated/pricing.js:614 #: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: templates/InvenTree/settings/user.html:32 +#: templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: templates/InvenTree/settings/user.html:36 +#: templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: templates/InvenTree/settings/user.html:40 +#: templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:54 +#: templates/InvenTree/settings/user.html:55 msgid "The following email addresses are associated with your account:" msgstr "" -#: templates/InvenTree/settings/user.html:75 +#: templates/InvenTree/settings/user.html:76 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:77 +#: templates/InvenTree/settings/user.html:78 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:79 +#: templates/InvenTree/settings/user.html:80 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:85 +#: templates/InvenTree/settings/user.html:86 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:86 +#: templates/InvenTree/settings/user.html:87 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:96 +#: templates/InvenTree/settings/user.html:97 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." msgstr "" -#: templates/InvenTree/settings/user.html:104 +#: templates/InvenTree/settings/user.html:105 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:109 +#: templates/InvenTree/settings/user.html:110 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:117 -msgid "Social Accounts" -msgstr "" - -#: templates/InvenTree/settings/user.html:122 -msgid "You can sign in to your account using any of the following third party accounts:" -msgstr "" - -#: templates/InvenTree/settings/user.html:158 -msgid "There are no social network accounts connected to this account." -msgstr "" - -#: templates/InvenTree/settings/user.html:164 -msgid "Add a 3rd Party Account" -msgstr "" - -#: templates/InvenTree/settings/user.html:174 +#: templates/InvenTree/settings/user.html:120 msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:179 +#: templates/InvenTree/settings/user.html:125 msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:135 msgid "TOTP" msgstr "" -#: templates/InvenTree/settings/user.html:195 +#: templates/InvenTree/settings/user.html:141 msgid "Static" msgstr "" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:150 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: templates/InvenTree/settings/user.html:211 +#: templates/InvenTree/settings/user.html:157 msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:212 +#: templates/InvenTree/settings/user.html:158 msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user.html:160 msgid "Remove multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:222 +#: templates/InvenTree/settings/user.html:168 msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:228 +#: templates/InvenTree/settings/user.html:174 msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:229 +#: templates/InvenTree/settings/user.html:175 msgid "Log Out Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:238 +#: templates/InvenTree/settings/user.html:184 msgid "unknown on unknown" msgstr "" -#: templates/InvenTree/settings/user.html:239 +#: templates/InvenTree/settings/user.html:185 msgid "unknown" msgstr "" -#: templates/InvenTree/settings/user.html:243 +#: templates/InvenTree/settings/user.html:189 msgid "IP Address" msgstr "" -#: templates/InvenTree/settings/user.html:244 +#: templates/InvenTree/settings/user.html:190 msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:245 +#: templates/InvenTree/settings/user.html:191 msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:258 +#: templates/InvenTree/settings/user.html:204 #, python-format msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:260 +#: templates/InvenTree/settings/user.html:206 #, python-format msgid "%(time)s ago" msgstr "" -#: templates/InvenTree/settings/user.html:272 +#: templates/InvenTree/settings/user.html:218 msgid "Do you really want to remove the selected email address?" msgstr "" @@ -9093,6 +9102,26 @@ msgstr "" msgid "Search Settings" msgstr "" +#: templates/InvenTree/settings/user_sso.html:9 +msgid "Single Sign On Accounts" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:16 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:52 +msgid "There are no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:58 +msgid "Add SSO Account" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:67 +msgid "Single Sign On is not enabled for this server" +msgstr "" + #: templates/about.html:9 msgid "InvenTree Version" msgstr "" @@ -9174,7 +9203,7 @@ msgid "This email confirmation link expired or is invalid. Please As a final step, please complete the following form:" msgstr "" +#: templates/socialaccount/snippets/provider_list.html:26 +msgid "Provider has not been configured" +msgstr "" + +#: templates/socialaccount/snippets/provider_list.html:35 +msgid "No SSO providers have been configured" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po index af802e3564..45953904b0 100644 --- a/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -105,75 +105,75 @@ msgstr "آدرس ایمیل اصلی ارائه شده معتبر نیست." msgid "The provided email domain is not approved." msgstr "دامنه ایمیل ارائه شده تایید نشده است." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "خطا در اتصال" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "سرور با کد وضعیت نامعتبر پاسخ داد" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "یک استثنا رخ داده است" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "سرور با مقدار طول محتوا نامعتبر پاسخ داد" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "اندازه عکس بسیار بزرگ است" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 6d9761c0c9..f706c3d459 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:15\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -105,75 +105,75 @@ msgstr "L'adresse e-mail principale fournie n'est pas valide." msgid "The provided email domain is not approved." msgstr "Le domaine e-mail fourni n'est pas approuvé." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Erreur de connexion" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Le serveur a répondu avec un code de statut invalide" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Une erreur est survenue" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Le serveur a répondu avec une valeur de longueur de contenu invalide" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Image trop volumineuse" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "La taille de l'image dépasse la taille maximale autorisée" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Le serveur distant a renvoyé une réponse vide" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "L'URL fournie n'est pas un fichier image valide" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Chaîne de numéro de série vide" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Numéro de série en doublon" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Plage de groupe invalide : {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "La plage de groupe {g} dépasse la quantité autorisée ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Séquence de groupe invalide : {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Aucun numéro de série trouvé" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Retirer les balises HTML de cette valeur" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 05c8aa1bfd..dfba053edc 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:15\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -105,75 +105,75 @@ msgstr "" msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "מספרים סידוריים לא נמצאו" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index 8088d48ed1..1deff86a3b 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -105,75 +105,75 @@ msgstr "A megadott elsődleges email cím nem valós." msgid "The provided email domain is not approved." msgstr "A megadott email domain nincs jóváhagyva." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Csatlakozási hiba" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Kivétel történt" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "A kiszolgáló érvénytelen Content-Length értéket adott" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "A kép mérete túl nagy" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "A kép letöltés meghaladja a maximális méretet" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "A kiszolgáló üres választ adott" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Üres sorozatszám" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Duplikált sorozatszám" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Érvénytelen csoport tartomány: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Több lett megadva {g} mint amennyi szükséges lenne ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Érvénytelen csoport szekvencia: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Nem található sorozatszám" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "A megadott számú egyedi sorozatszám ({s}) meg kell egyezzen a darabszámmal ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "HTML tag-ek eltávolítása ebből az értékből" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 1f66770729..a2c9216c5c 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -105,75 +105,75 @@ msgstr "" msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Ukuran gambar terlalu besar" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "URL yang diberikan bukan file gambar yang valid" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Jumlah yang diberikan tidak valid" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Nomor seri kosong" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Jangkauan grup tidak valid: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Urutan grup tidak valid: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Tidak ada nomor seri ditemukan" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index dbe2e91ea2..c2e2744a83 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -105,75 +105,75 @@ msgstr "L'indirizzo email principale fornito non è valido." msgid "The provided email domain is not approved." msgstr "L'indirizzo di posta elettronica fornito non è approvato." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Errore di connessione" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Il server ha risposto con un codice di stato non valido" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Si è verificata un'eccezione" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Il server ha risposto con valore Content-Length non valido" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Immagine troppo grande" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Il download dell'immagine ha superato la dimensione massima" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Il server remoto ha restituito una risposta vuota" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Numero seriale vuoto" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Seriale Duplicato" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Range gruppo: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "L'intervallo {g} supera la quantità consentita ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Sequenza gruppo non valida: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Nessun numero di serie trovato" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Rimuovi i tag HTML da questo valore" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index b3f16a9dd4..1dd01325a6 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -105,75 +105,75 @@ msgstr "" msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "接続エラー" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "数量コードが無効です" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "シリアル番号は空です" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "シリアル番号が見つかりません" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 08a17dd313..a47d3c5aac 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -105,75 +105,75 @@ msgstr "" msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index d699809871..8214461a57 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -105,75 +105,75 @@ msgstr "Het opgegeven primaire e-mailadres is ongeldig." msgid "The provided email domain is not approved." msgstr "Het ingevoerde e-maildomein is niet goedgekeurd." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Verbindingsfout" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Server reageerde met ongeldige statuscode" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Uitzondering opgetreden" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Server reageerde met ongeldige Content-Length waarde" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Afbeeldingsformaat is te groot" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Beelddownload overschrijdt de maximale grootte" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Externe server heeft lege reactie teruggegeven" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveelheid ingevoerd" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Leeg serienummer" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Duplicaat serienummer" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ongeldig groepsbereik: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Groepsbereik {g} overschrijdt toegestane hoeveelheid ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ongeldig groepsbereik: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Geen serienummers gevonden" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Hoeveelheid van unieke serienummers ({s}) moet overeenkomen met de hoeveelheid ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Verwijder HTML tags van deze waarde" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 61bf4c4c03..4344442802 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -105,75 +105,75 @@ msgstr "Den oppgitte primære e-postadressen er ikke gyldig." msgid "The provided email domain is not approved." msgstr "Det oppgitte e-postdomenet er ikke godkjent." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Tilkoblingsfeil" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Serveren svarte med ugyldig statuskode" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Det har oppstått et unntak" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarte med ugyldig \"Content-Length\"-verdi" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Bildestørrelsen er for stor" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Bildenedlasting overskred maksimal størrelse" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Ekstern server returnerte tomt svar" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Tom serienummerstreng" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Duplisert serienummer" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ugyldig gruppeserie: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Gruppeserie {g} overskrider tillatt antall ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ugyldig gruppesekvens: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Ingen serienummer funnet" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Antall unike serienumre ({s}) må samsvare med antall ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tagger fra denne verdien" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index e01e79b22a..9a84daf3bd 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -105,75 +105,75 @@ msgstr "Podany podstawowy adres e-mail jest nieprawidłowy." msgid "The provided email domain is not approved." msgstr "Podany e-mail domeny nie został zatwierdzony." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Błąd połączenia" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Serwer odpowiedział z nieprawidłowym kodem statusu" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Wystąpił wyjątek" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Serwer odpowiedział z nieprawidłową wartością Content-Length" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Rozmiar obrazu jest zbyt duży" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Przekroczono maksymalny rozmiar pobieranego obrazu" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Zdalny serwer zwrócił pustą odpowiedź" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Podany adres URL nie jest poprawnym plikiem obrazu" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Pusty ciąg numeru seryjnego" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Podwójny numer seryjny" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Nieprawidłowy zakres grupy: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Zakres grupy {g} przekracza dozwoloną ilość ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Nieprawidłowa sekwencja grupy: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Nie znaleziono numerów seryjnych" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Liczba unikalnych numerów seryjnych ({s}) musi odpowiadać ilości ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Usuń znaczniki HTML z tej wartości" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index 061eb683a8..b0843b8505 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -105,75 +105,75 @@ msgstr "O endereço primário de e-mail não é válido." msgid "The provided email domain is not approved." msgstr "O domínio de e-mail providenciado não foi aprovado." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Erro de conexão" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "O servidor respondeu com código estado inválido" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Ocorreu uma exceção" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "O servidor respondeu com valor inválido do tamanho de conteúdo" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Tamanho da imagem muito grande" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "O download da imagem excedeu o tamanho máximo" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "O servidor remoto retornou resposta vazia" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "A URL fornecida não é um arquivo de imagem válido" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Quantidade invalida" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Numero serial em branco" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Número de série duplicado" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Numero de grupo invalido:{g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Intervalo de grupos {g} excede a quantidade permitida ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Sequencia de grupo invalida:{g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Nenhum numero serial encontrado" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Numero de numeros seriais ({s}) precisa bater com quantidade ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Remova as \"tags\" HTML deste valor" diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po index 9083922b60..0e4c6fc003 100644 --- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-14 09:15+0000\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,25 +35,25 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:204 InvenTree/models.py:764 build/serializers.py:387 -#: build/serializers.py:464 build/templates/build/sidebar.html:21 -#: company/models.py:556 company/templates/company/sidebar.html:35 +#: build/serializers.py:464 build/templates/build/sidebar.html:23 +#: company/models.py:557 company/templates/company/sidebar.html:35 #: order/models.py:1086 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:2986 part/templates/part/part_sidebar.html:63 +#: part/models.py:2987 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2133 stock/models.py:2241 -#: stock/serializers.py:341 stock/serializers.py:474 stock/serializers.py:555 -#: stock/serializers.py:838 stock/serializers.py:937 stock/serializers.py:1069 +#: stock/admin.py:121 stock/models.py:2157 stock/models.py:2265 +#: stock/serializers.py:342 stock/serializers.py:475 stock/serializers.py:556 +#: stock/serializers.py:839 stock/serializers.py:938 stock/serializers.py:1070 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:130 templates/js/translated/bom.js:1220 -#: templates/js/translated/company.js:1272 templates/js/translated/order.js:322 +#: templates/js/translated/company.js:1272 templates/js/translated/order.js:329 #: templates/js/translated/part.js:1020 #: templates/js/translated/purchase_order.js:2127 #: templates/js/translated/return_order.js:740 -#: templates/js/translated/sales_order.js:1003 -#: templates/js/translated/sales_order.js:1910 -#: templates/js/translated/stock.js:1424 templates/js/translated/stock.js:2125 +#: templates/js/translated/sales_order.js:1022 +#: templates/js/translated/sales_order.js:1929 +#: templates/js/translated/stock.js:1424 templates/js/translated/stock.js:2128 msgid "Notes" msgstr "" @@ -106,75 +106,75 @@ msgstr "" msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" @@ -222,7 +222,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:484 stock/models.py:2235 +#: InvenTree/models.py:484 stock/models.py:2259 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -233,23 +233,23 @@ msgid "Select file to attach" msgstr "" #: InvenTree/models.py:491 common/models.py:2671 company/models.py:130 -#: company/models.py:304 company/models.py:543 order/models.py:232 -#: order/models.py:1090 order/models.py:1438 part/admin.py:39 -#: part/models.py:897 part/templates/part/part_scheduling.html:11 +#: company/models.py:304 company/models.py:544 order/models.py:232 +#: order/models.py:1090 order/models.py:1450 part/admin.py:39 +#: part/models.py:898 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:120 templates/js/translated/company.js:962 -#: templates/js/translated/company.js:1261 templates/js/translated/order.js:326 +#: templates/js/translated/company.js:1261 templates/js/translated/order.js:333 #: templates/js/translated/part.js:1957 #: templates/js/translated/purchase_order.js:1967 #: templates/js/translated/purchase_order.js:2131 #: templates/js/translated/return_order.js:744 -#: templates/js/translated/sales_order.js:992 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/sales_order.js:1011 +#: templates/js/translated/sales_order.js:1934 msgid "Link" msgstr "" -#: InvenTree/models.py:492 build/models.py:290 part/models.py:898 -#: stock/models.py:734 +#: InvenTree/models.py:492 build/models.py:290 part/models.py:899 +#: stock/models.py:735 msgid "Link to external URL" msgstr "" @@ -264,11 +264,11 @@ msgstr "" #: InvenTree/models.py:501 InvenTree/models.py:502 common/models.py:2120 #: common/models.py:2121 common/models.py:2344 common/models.py:2345 -#: common/models.py:2601 common/models.py:2602 part/models.py:2994 -#: part/models.py:3082 part/models.py:3161 part/models.py:3181 +#: common/models.py:2601 common/models.py:2602 part/models.py:2995 +#: part/models.py:3083 part/models.py:3162 part/models.py:3182 #: plugin/models.py:221 plugin/models.py:222 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:2734 +#: templates/js/translated/stock.js:2737 msgid "User" msgstr "" @@ -310,8 +310,8 @@ msgid "Invalid choice" msgstr "" #: InvenTree/models.py:646 InvenTree/models.py:647 common/models.py:2330 -#: company/models.py:388 label/models.py:102 part/models.py:843 -#: part/models.py:3329 plugin/models.py:41 report/models.py:159 +#: company/models.py:388 label/models.py:102 part/models.py:844 +#: part/models.py:3330 plugin/models.py:41 report/models.py:159 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:59 @@ -323,18 +323,18 @@ msgstr "" #: templates/js/translated/company.js:856 #: templates/js/translated/company.js:1056 templates/js/translated/part.js:1126 #: templates/js/translated/part.js:1282 templates/js/translated/part.js:2340 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/stock.js:2428 msgid "Name" msgstr "" #: InvenTree/models.py:653 build/models.py:163 #: build/templates/build/detail.html:24 common/models.py:110 -#: company/models.py:310 company/models.py:549 +#: company/models.py:310 company/models.py:550 #: company/templates/company/company_base.html:72 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:109 -#: order/models.py:228 part/admin.py:194 part/admin.py:276 part/models.py:865 -#: part/models.py:3338 part/templates/part/category.html:81 +#: order/models.py:228 order/models.py:1114 part/admin.py:194 part/admin.py:276 +#: part/models.py:866 part/models.py:3339 part/templates/part/category.html:81 #: part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:172 #: report/models.py:586 report/models.py:630 @@ -345,18 +345,19 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:75 #: templates/InvenTree/settings/settings_staff_js.html:333 #: templates/js/translated/bom.js:602 templates/js/translated/bom.js:903 -#: templates/js/translated/build.js:2794 templates/js/translated/company.js:496 +#: templates/js/translated/build.js:2798 templates/js/translated/company.js:496 #: templates/js/translated/company.js:973 -#: templates/js/translated/company.js:1236 templates/js/translated/part.js:1178 -#: templates/js/translated/part.js:1620 templates/js/translated/part.js:1894 -#: templates/js/translated/part.js:2376 templates/js/translated/part.js:2467 +#: templates/js/translated/company.js:1236 templates/js/translated/order.js:280 +#: templates/js/translated/part.js:1178 templates/js/translated/part.js:1620 +#: templates/js/translated/part.js:1894 templates/js/translated/part.js:2376 +#: templates/js/translated/part.js:2467 #: templates/js/translated/purchase_order.js:1625 #: templates/js/translated/purchase_order.js:1771 #: templates/js/translated/purchase_order.js:1949 #: templates/js/translated/return_order.js:282 -#: templates/js/translated/sales_order.js:750 -#: templates/js/translated/stock.js:1403 templates/js/translated/stock.js:1778 -#: templates/js/translated/stock.js:2457 templates/js/translated/stock.js:2529 +#: templates/js/translated/sales_order.js:757 +#: templates/js/translated/stock.js:1403 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2460 templates/js/translated/stock.js:2532 msgid "Description" msgstr "" @@ -369,7 +370,7 @@ msgid "parent" msgstr "" #: InvenTree/models.py:669 InvenTree/models.py:670 -#: templates/js/translated/part.js:2385 templates/js/translated/stock.js:2466 +#: templates/js/translated/part.js:2385 templates/js/translated/stock.js:2469 msgid "Path" msgstr "" @@ -405,12 +406,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3698 +#: InvenTree/serializers.py:60 part/models.py:3699 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:90 company/models.py:152 -#: company/templates/company/company_base.html:107 part/models.py:2833 +#: company/templates/company/company_base.html:107 part/models.py:2834 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -633,10 +634,10 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:183 order/models.py:1323 -#: templates/js/translated/sales_order.js:1457 -#: templates/js/translated/sales_order.js:1581 -#: templates/js/translated/sales_order.js:1885 +#: InvenTree/status_codes.py:183 order/models.py:1329 +#: templates/js/translated/sales_order.js:1476 +#: templates/js/translated/sales_order.js:1600 +#: templates/js/translated/sales_order.js:1904 msgid "Shipped" msgstr "" @@ -724,7 +725,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:331 templates/js/translated/stock.js:2204 +#: InvenTree/status_codes.py:331 templates/js/translated/stock.js:2207 msgid "Merged stock items" msgstr "" @@ -752,7 +753,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: InvenTree/status_codes.py:341 +#: InvenTree/status_codes.py:341 templates/js/translated/stock.js:1640 msgid "Consumed by build order" msgstr "" @@ -808,11 +809,11 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:409 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:409 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:421 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:421 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" @@ -841,7 +842,7 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:884 templates/js/translated/stock.js:2590 +#: templates/js/translated/build.js:888 templates/js/translated/stock.js:2593 msgid "Build Order" msgstr "" @@ -849,7 +850,7 @@ msgstr "" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:119 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:245 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:244 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/search.js:216 users/models.py:42 @@ -865,18 +866,18 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:355 order/models.py:762 -#: order/models.py:1084 order/models.py:1699 part/admin.py:278 -#: part/models.py:3599 part/templates/part/upload_bom.html:54 +#: order/models.py:1084 order/models.py:1721 part/admin.py:278 +#: part/models.py:3600 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 #: report/templates/report/inventree_so_report_base.html:28 #: templates/js/translated/bom.js:739 templates/js/translated/bom.js:913 -#: templates/js/translated/build.js:2037 templates/js/translated/order.js:272 +#: templates/js/translated/build.js:2041 templates/js/translated/order.js:273 #: templates/js/translated/pricing.js:372 #: templates/js/translated/purchase_order.js:1992 #: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:1749 +#: templates/js/translated/sales_order.js:1768 msgid "Reference" msgstr "" @@ -894,12 +895,12 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:180 build/templates/build/build_base.html:98 -#: build/templates/build/detail.html:29 company/models.py:722 -#: order/models.py:1186 order/models.py:1302 order/models.py:1303 -#: part/models.py:387 part/models.py:2846 part/models.py:2960 -#: part/models.py:3100 part/models.py:3119 part/models.py:3138 -#: part/models.py:3159 part/models.py:3251 part/models.py:3372 -#: part/models.py:3464 part/models.py:3564 part/models.py:3878 +#: build/templates/build/detail.html:29 company/models.py:723 +#: order/models.py:1192 order/models.py:1308 order/models.py:1309 +#: part/models.py:388 part/models.py:2847 part/models.py:2961 +#: part/models.py:3101 part/models.py:3120 part/models.py:3139 +#: part/models.py:3160 part/models.py:3252 part/models.py:3373 +#: part/models.py:3465 part/models.py:3565 part/models.py:3879 #: part/serializers.py:849 part/serializers.py:1252 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -910,7 +911,7 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:27 #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:155 stock/serializers.py:508 +#: stock/serializers.py:156 stock/serializers.py:509 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -918,8 +919,8 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:516 templates/js/translated/bom.js:601 #: templates/js/translated/bom.js:738 templates/js/translated/bom.js:857 -#: templates/js/translated/build.js:1342 templates/js/translated/build.js:1904 -#: templates/js/translated/build.js:2403 templates/js/translated/build.js:2805 +#: templates/js/translated/build.js:1346 templates/js/translated/build.js:1908 +#: templates/js/translated/build.js:2407 templates/js/translated/build.js:2809 #: templates/js/translated/company.js:322 #: templates/js/translated/company.js:807 #: templates/js/translated/company.js:914 @@ -932,14 +933,14 @@ msgstr "" #: templates/js/translated/purchase_order.js:1934 #: templates/js/translated/return_order.js:507 #: templates/js/translated/return_order.js:674 -#: templates/js/translated/sales_order.js:249 -#: templates/js/translated/sales_order.js:1133 -#: templates/js/translated/sales_order.js:1532 -#: templates/js/translated/sales_order.js:1733 +#: templates/js/translated/sales_order.js:252 +#: templates/js/translated/sales_order.js:1152 +#: templates/js/translated/sales_order.js:1551 +#: templates/js/translated/sales_order.js:1752 #: templates/js/translated/stock.js:607 templates/js/translated/stock.js:773 -#: templates/js/translated/stock.js:985 templates/js/translated/stock.js:1734 -#: templates/js/translated/stock.js:2555 templates/js/translated/stock.js:2792 -#: templates/js/translated/stock.js:2929 +#: templates/js/translated/stock.js:985 templates/js/translated/stock.js:1737 +#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2932 msgid "Part" msgstr "" @@ -956,8 +957,8 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:202 build/serializers.py:900 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:2395 +#: templates/js/translated/sales_order.js:1140 msgid "Source Location" msgstr "" @@ -997,8 +998,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:229 order/serializers.py:504 -#: stock/models.py:738 templates/js/translated/purchase_order.js:1058 +#: build/models.py:245 build/serializers.py:229 order/serializers.py:505 +#: stock/models.py:739 templates/js/translated/purchase_order.js:1058 msgid "Batch Code" msgstr "" @@ -1006,10 +1007,10 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:240 part/models.py:1031 +#: build/models.py:252 order/models.py:240 part/models.py:1032 #: part/templates/part/part_base.html:312 #: templates/js/translated/return_order.js:307 -#: templates/js/translated/sales_order.js:775 +#: templates/js/translated/sales_order.js:782 msgid "Creation Date" msgstr "" @@ -1021,8 +1022,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:260 order/models.py:405 order/models.py:1742 -#: templates/js/translated/build.js:2890 +#: build/models.py:260 order/models.py:405 order/models.py:1764 +#: templates/js/translated/build.js:2894 msgid "Completion Date" msgstr "" @@ -1030,7 +1031,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:274 templates/js/translated/build.js:2850 +#: build/models.py:274 templates/js/translated/build.js:2854 msgid "Issued by" msgstr "" @@ -1042,10 +1043,10 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:254 #: order/templates/order/order_base.html:214 #: order/templates/order/return_order_base.html:182 -#: order/templates/order/sales_order_base.html:222 part/models.py:1035 +#: order/templates/order/sales_order_base.html:222 part/models.py:1036 #: part/templates/part/part_base.html:392 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2862 +#: templates/js/translated/build.js:2866 #: templates/js/translated/purchase_order.js:1682 #: templates/js/translated/return_order.js:327 #: templates/js/translated/table_filters.js:446 @@ -1062,7 +1063,7 @@ msgstr "" #: order/templates/order/order_base.html:171 #: order/templates/order/return_order_base.html:146 #: order/templates/order/sales_order_base.html:181 -#: part/templates/part/part_base.html:385 stock/models.py:732 +#: part/templates/part/part_base.html:385 stock/models.py:733 #: stock/templates/stock/item_base.html:201 msgid "External Link" msgstr "" @@ -1105,11 +1106,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1275 order/models.py:1576 +#: build/models.py:1275 order/models.py:1598 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1281 order/models.py:1579 +#: build/models.py:1281 order/models.py:1601 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1121,44 +1122,44 @@ msgstr "" msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1413 stock/templates/stock/item_base.html:170 -#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2778 +#: build/models.py:1422 stock/templates/stock/item_base.html:170 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2782 #: templates/navbar.html:38 msgid "Build" msgstr "" -#: build/models.py:1414 +#: build/models.py:1423 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1430 build/serializers.py:749 order/serializers.py:1056 -#: order/serializers.py:1077 stock/serializers.py:412 stock/serializers.py:769 -#: stock/serializers.py:895 stock/templates/stock/item_base.html:10 +#: build/models.py:1439 build/serializers.py:749 order/serializers.py:1060 +#: order/serializers.py:1081 stock/serializers.py:413 stock/serializers.py:770 +#: stock/serializers.py:896 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:195 -#: templates/js/translated/build.js:894 templates/js/translated/build.js:899 -#: templates/js/translated/build.js:2405 templates/js/translated/build.js:2975 -#: templates/js/translated/sales_order.js:250 -#: templates/js/translated/sales_order.js:1134 -#: templates/js/translated/sales_order.js:1433 -#: templates/js/translated/sales_order.js:1438 -#: templates/js/translated/sales_order.js:1539 -#: templates/js/translated/sales_order.js:1629 +#: templates/js/translated/build.js:898 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:2409 templates/js/translated/build.js:2979 +#: templates/js/translated/sales_order.js:253 +#: templates/js/translated/sales_order.js:1153 +#: templates/js/translated/sales_order.js:1452 +#: templates/js/translated/sales_order.js:1457 +#: templates/js/translated/sales_order.js:1558 +#: templates/js/translated/sales_order.js:1648 #: templates/js/translated/stock.js:608 templates/js/translated/stock.js:774 -#: templates/js/translated/stock.js:2675 +#: templates/js/translated/stock.js:2678 msgid "Stock Item" msgstr "" -#: build/models.py:1431 +#: build/models.py:1440 msgid "Source stock item" msgstr "" -#: build/models.py:1443 build/serializers.py:197 +#: build/models.py:1452 build/serializers.py:197 #: build/templates/build/build_base.html:103 #: build/templates/build/detail.html:34 common/models.py:2152 -#: order/models.py:1070 order/models.py:1620 order/serializers.py:1230 +#: order/models.py:1070 order/models.py:1642 order/serializers.py:1234 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277 -#: part/forms.py:47 part/models.py:2973 part/models.py:3580 +#: part/forms.py:47 part/models.py:2974 part/models.py:3581 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1167,18 +1168,18 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:103 stock/serializers.py:305 +#: stock/admin.py:103 stock/serializers.py:306 #: stock/templates/stock/item_base.html:288 #: stock/templates/stock/item_base.html:296 #: stock/templates/stock/item_base.html:343 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:518 templates/js/translated/bom.js:740 #: templates/js/translated/bom.js:921 templates/js/translated/build.js:474 -#: templates/js/translated/build.js:921 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:1930 templates/js/translated/build.js:2406 +#: templates/js/translated/build.js:925 templates/js/translated/build.js:1368 +#: templates/js/translated/build.js:1934 templates/js/translated/build.js:2410 #: templates/js/translated/company.js:1406 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/order.js:279 templates/js/translated/part.js:901 +#: templates/js/translated/order.js:286 templates/js/translated/part.js:901 #: templates/js/translated/part.js:1469 templates/js/translated/part.js:2904 #: templates/js/translated/pricing.js:367 #: templates/js/translated/pricing.js:460 @@ -1187,32 +1188,32 @@ msgstr "" #: templates/js/translated/purchase_order.js:710 #: templates/js/translated/purchase_order.js:1774 #: templates/js/translated/purchase_order.js:1998 -#: templates/js/translated/sales_order.js:266 -#: templates/js/translated/sales_order.js:1135 -#: templates/js/translated/sales_order.js:1452 -#: templates/js/translated/sales_order.js:1545 -#: templates/js/translated/sales_order.js:1635 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:269 +#: templates/js/translated/sales_order.js:1154 +#: templates/js/translated/sales_order.js:1471 +#: templates/js/translated/sales_order.js:1564 +#: templates/js/translated/sales_order.js:1654 +#: templates/js/translated/sales_order.js:1774 #: templates/js/translated/stock.js:495 templates/js/translated/stock.js:633 -#: templates/js/translated/stock.js:804 templates/js/translated/stock.js:2719 -#: templates/js/translated/stock.js:2804 +#: templates/js/translated/stock.js:804 templates/js/translated/stock.js:2722 +#: templates/js/translated/stock.js:2807 msgid "Quantity" msgstr "" -#: build/models.py:1444 +#: build/models.py:1453 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1452 +#: build/models.py:1461 msgid "Install into" msgstr "" -#: build/models.py:1453 +#: build/models.py:1462 msgid "Destination stock item" msgstr "" #: build/serializers.py:148 build/serializers.py:778 -#: templates/js/translated/build.js:1352 +#: templates/js/translated/build.js:1356 msgid "Build Output" msgstr "" @@ -1237,9 +1238,9 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:212 build/serializers.py:769 order/models.py:436 -#: order/serializers.py:377 order/serializers.py:499 part/serializers.py:1094 -#: part/serializers.py:1415 stock/models.py:592 stock/models.py:1370 -#: stock/serializers.py:314 +#: order/serializers.py:378 order/serializers.py:500 part/serializers.py:1094 +#: part/serializers.py:1415 stock/models.py:593 stock/models.py:1386 +#: stock/serializers.py:315 msgid "Quantity must be greater than zero" msgstr "" @@ -1251,8 +1252,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:236 order/serializers.py:512 order/serializers.py:1234 -#: stock/serializers.py:323 templates/js/translated/purchase_order.js:1082 +#: build/serializers.py:236 order/serializers.py:513 order/serializers.py:1238 +#: stock/serializers.py:324 templates/js/translated/purchase_order.js:1082 #: templates/js/translated/stock.js:298 templates/js/translated/stock.js:496 msgid "Serial Numbers" msgstr "" @@ -1269,7 +1270,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:286 stock/api.py:668 +#: build/serializers.py:286 stock/api.py:669 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1277,23 +1278,23 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:375 build/serializers.py:446 order/serializers.py:485 -#: order/serializers.py:606 order/serializers.py:1583 part/serializers.py:861 -#: stock/serializers.py:334 stock/serializers.py:469 stock/serializers.py:550 -#: stock/serializers.py:930 stock/serializers.py:1172 -#: stock/templates/stock/item_base.html:384 +#: build/serializers.py:375 build/serializers.py:446 order/serializers.py:486 +#: order/serializers.py:607 order/serializers.py:1587 part/serializers.py:861 +#: stock/serializers.py:335 stock/serializers.py:470 stock/serializers.py:551 +#: stock/serializers.py:931 stock/serializers.py:1173 +#: stock/templates/stock/item_base.html:390 #: templates/js/translated/barcode.js:517 -#: templates/js/translated/barcode.js:765 templates/js/translated/build.js:906 -#: templates/js/translated/build.js:1945 +#: templates/js/translated/barcode.js:765 templates/js/translated/build.js:910 +#: templates/js/translated/build.js:1949 #: templates/js/translated/purchase_order.js:1107 #: templates/js/translated/purchase_order.js:1197 -#: templates/js/translated/sales_order.js:1445 -#: templates/js/translated/sales_order.js:1556 -#: templates/js/translated/sales_order.js:1564 -#: templates/js/translated/sales_order.js:1643 +#: templates/js/translated/sales_order.js:1464 +#: templates/js/translated/sales_order.js:1575 +#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1662 #: templates/js/translated/stock.js:609 templates/js/translated/stock.js:775 -#: templates/js/translated/stock.js:987 templates/js/translated/stock.js:1898 -#: templates/js/translated/stock.js:2569 +#: templates/js/translated/stock.js:987 templates/js/translated/stock.js:1901 +#: templates/js/translated/stock.js:2572 msgid "Location" msgstr "" @@ -1319,15 +1320,15 @@ msgstr "" #: build/serializers.py:453 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:788 -#: order/models.py:1725 order/serializers.py:522 stock/admin.py:106 -#: stock/templates/stock/item_base.html:417 -#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2834 +#: order/models.py:1747 order/serializers.py:523 stock/admin.py:106 +#: stock/templates/stock/item_base.html:423 +#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2838 #: templates/js/translated/purchase_order.js:1237 #: templates/js/translated/purchase_order.js:1641 #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:767 -#: templates/js/translated/stock.js:1873 templates/js/translated/stock.js:2693 -#: templates/js/translated/stock.js:2820 +#: templates/js/translated/sales_order.js:774 +#: templates/js/translated/stock.js:1876 templates/js/translated/stock.js:2696 +#: templates/js/translated/stock.js:2823 msgid "Status" msgstr "" @@ -1391,7 +1392,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:622 order/serializers.py:259 order/serializers.py:1124 +#: build/serializers.py:622 order/serializers.py:260 order/serializers.py:1128 msgid "Accept Incomplete" msgstr "" @@ -1407,8 +1408,8 @@ msgstr "" msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:672 build/serializers.py:726 part/models.py:3487 -#: part/models.py:3870 +#: build/serializers.py:672 build/serializers.py:726 part/models.py:3488 +#: part/models.py:3871 msgid "BOM Item" msgstr "" @@ -1424,11 +1425,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:755 stock/serializers.py:782 +#: build/serializers.py:755 stock/serializers.py:783 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:804 order/serializers.py:1114 +#: build/serializers.py:804 order/serializers.py:1118 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1445,7 +1446,7 @@ msgstr "" msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:845 order/serializers.py:1398 +#: build/serializers.py:845 order/serializers.py:1402 msgid "Allocation items must be provided" msgstr "" @@ -1609,13 +1610,13 @@ msgstr "" #: order/templates/order/return_order_base.html:165 #: order/templates/order/sales_order_base.html:193 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2882 templates/js/translated/part.js:1488 +#: templates/js/translated/build.js:2886 templates/js/translated/part.js:1488 #: templates/js/translated/purchase_order.js:1658 #: templates/js/translated/purchase_order.js:2074 #: templates/js/translated/return_order.js:315 #: templates/js/translated/return_order.js:715 -#: templates/js/translated/sales_order.js:783 -#: templates/js/translated/sales_order.js:1798 +#: templates/js/translated/sales_order.js:790 +#: templates/js/translated/sales_order.js:1817 msgid "Target Date" msgstr "" @@ -1644,18 +1645,18 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1295 -#: order/models.py:1394 order/models.py:1526 +#: build/templates/build/detail.html:101 order/api.py:1451 order/models.py:1301 +#: order/models.py:1400 order/models.py:1548 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 #: report/templates/report/inventree_so_report_base.html:14 -#: stock/templates/stock/item_base.html:364 +#: stock/templates/stock/item_base.html:370 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:898 -#: templates/js/translated/sales_order.js:717 -#: templates/js/translated/sales_order.js:940 -#: templates/js/translated/stock.js:2622 +#: templates/js/translated/sales_order.js:724 +#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/stock.js:2625 msgid "Sales Order" msgstr "" @@ -1666,7 +1667,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2799 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2803 msgid "Priority" msgstr "" @@ -1694,7 +1695,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1213 +#: build/templates/build/detail.html:49 order/models.py:1219 #: templates/js/translated/purchase_order.js:2116 msgid "Destination" msgstr "" @@ -1709,11 +1710,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:105 #: stock/templates/stock/item_base.html:163 -#: templates/js/translated/build.js:1371 +#: templates/js/translated/build.js:1375 #: templates/js/translated/model_renderers.js:209 #: templates/js/translated/purchase_order.js:1203 -#: templates/js/translated/stock.js:1057 templates/js/translated/stock.js:1887 -#: templates/js/translated/stock.js:2827 +#: templates/js/translated/stock.js:1057 templates/js/translated/stock.js:1890 +#: templates/js/translated/stock.js:2830 #: templates/js/translated/table_filters.js:255 #: templates/js/translated/table_filters.js:346 msgid "Batch" @@ -1723,7 +1724,7 @@ msgstr "" #: order/templates/order/order_base.html:177 #: order/templates/order/return_order_base.html:152 #: order/templates/order/sales_order_base.html:187 -#: templates/js/translated/build.js:2842 +#: templates/js/translated/build.js:2846 msgid "Created" msgstr "" @@ -1735,7 +1736,7 @@ msgstr "" msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:19 msgid "Child Build Orders" msgstr "" @@ -1743,7 +1744,7 @@ msgstr "" msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:183 templates/js/translated/build.js:2215 +#: build/templates/build/detail.html:183 templates/js/translated/build.js:2219 msgid "Unallocate stock" msgstr "" @@ -1835,11 +1836,15 @@ msgstr "" msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:11 +msgid "Consumed Stock" +msgstr "" + +#: build/templates/build/detail.html:300 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:300 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:312 build/templates/build/sidebar.html:21 #: company/templates/company/detail.html:261 #: company/templates/company/manufacturer_part.html:151 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1855,15 +1860,15 @@ msgstr "" msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:315 +#: build/templates/build/detail.html:327 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:479 +#: build/templates/build/detail.html:500 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:480 +#: build/templates/build/detail.html:501 msgid "All untracked stock items have been allocated" msgstr "" @@ -1875,11 +1880,11 @@ msgstr "" msgid "Build Order Details" msgstr "" -#: build/templates/build/sidebar.html:12 +#: build/templates/build/sidebar.html:14 msgid "Incomplete Outputs" msgstr "" -#: build/templates/build/sidebar.html:15 +#: build/templates/build/sidebar.html:17 msgid "Completed Outputs" msgstr "" @@ -1933,7 +1938,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:70 #: templates/js/translated/purchase_order.js:1629 #: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:754 +#: templates/js/translated/sales_order.js:761 #: templates/js/translated/table_filters.js:20 #: templates/project_code_data.html:6 msgid "Project Code" @@ -2222,7 +2227,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1157 part/admin.py:55 part/models.py:3374 +#: common/models.py:1157 part/admin.py:55 part/models.py:3375 #: report/models.py:165 templates/js/translated/table_filters.js:105 #: templates/js/translated/table_filters.js:660 msgid "Template" @@ -2232,7 +2237,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1164 part/admin.py:51 part/admin.py:283 part/models.py:989 +#: common/models.py:1164 part/admin.py:51 part/admin.py:283 part/models.py:990 #: templates/js/translated/bom.js:1594 #: templates/js/translated/table_filters.js:272 #: templates/js/translated/table_filters.js:619 @@ -2243,7 +2248,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1171 part/admin.py:52 part/models.py:995 +#: common/models.py:1171 part/admin.py:52 part/models.py:996 #: templates/js/translated/table_filters.js:627 msgid "Component" msgstr "" @@ -2252,7 +2257,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1178 part/admin.py:53 part/models.py:1006 +#: common/models.py:1178 part/admin.py:53 part/models.py:1007 msgid "Purchaseable" msgstr "" @@ -2260,7 +2265,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1185 part/admin.py:54 part/models.py:1011 +#: common/models.py:1185 part/admin.py:54 part/models.py:1012 #: templates/js/translated/table_filters.js:648 msgid "Salable" msgstr "" @@ -2269,7 +2274,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1192 part/admin.py:56 part/models.py:1001 +#: common/models.py:1192 part/admin.py:56 part/models.py:1002 #: templates/js/translated/table_filters.js:113 #: templates/js/translated/table_filters.js:189 #: templates/js/translated/table_filters.js:664 @@ -2280,7 +2285,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1199 part/admin.py:57 part/models.py:1021 +#: common/models.py:1199 part/admin.py:57 part/models.py:1022 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:109 #: templates/js/translated/table_filters.js:668 @@ -3224,7 +3229,7 @@ msgid "Price break quantity" msgstr "" #: common/models.py:2160 company/serializers.py:435 order/admin.py:43 -#: order/models.py:1123 order/models.py:1914 +#: order/models.py:1129 order/models.py:1936 #: templates/js/translated/company.js:1411 templates/js/translated/part.js:1543 #: templates/js/translated/pricing.js:607 #: templates/js/translated/return_order.js:705 @@ -3247,7 +3252,7 @@ msgstr "" msgid "Name for this webhook" msgstr "" -#: common/models.py:2336 part/admin.py:50 part/models.py:1016 +#: common/models.py:2336 part/admin.py:50 part/models.py:1017 #: plugin/models.py:47 templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:435 @@ -3349,7 +3354,7 @@ msgstr "" msgid "Was this news item read?" msgstr "" -#: common/models.py:2712 company/models.py:141 part/models.py:910 +#: common/models.py:2712 company/models.py:141 part/models.py:911 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3461,7 +3466,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:124 company/templates/company/company_base.html:133 -#: templates/InvenTree/settings/user.html:48 +#: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:644 msgid "Email" msgstr "" @@ -3515,17 +3520,17 @@ msgstr "" #: company/models.py:221 company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:179 templates/js/translated/company.js:473 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:473 msgid "Company" msgstr "" -#: company/models.py:276 company/models.py:514 stock/models.py:674 -#: stock/serializers.py:154 stock/templates/stock/item_base.html:143 +#: company/models.py:276 company/models.py:515 stock/models.py:675 +#: stock/serializers.py:155 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:591 msgid "Base Part" msgstr "" -#: company/models.py:280 company/models.py:518 +#: company/models.py:280 company/models.py:519 msgid "Select part" msgstr "" @@ -3568,7 +3573,7 @@ msgstr "" msgid "Manufacturer part description" msgstr "" -#: company/models.py:358 company/models.py:382 company/models.py:537 +#: company/models.py:358 company/models.py:382 company/models.py:538 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:218 @@ -3581,7 +3586,7 @@ msgstr "" #: company/models.py:395 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2228 templates/js/translated/company.js:857 +#: stock/models.py:2252 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1291 #: templates/js/translated/stock.js:1410 msgid "Value" @@ -3591,8 +3596,8 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:402 part/admin.py:40 part/models.py:983 -#: part/models.py:3334 part/templates/part/part_base.html:286 +#: company/models.py:402 part/admin.py:40 part/models.py:984 +#: part/models.py:3335 part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings_staff_js.html:327 #: templates/js/translated/company.js:1068 templates/js/translated/part.js:1297 msgid "Units" @@ -3602,11 +3607,11 @@ msgstr "" msgid "Parameter units" msgstr "" -#: company/models.py:482 +#: company/models.py:483 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:524 company/templates/company/company_base.html:82 +#: company/models.py:525 company/templates/company/company_base.html:82 #: company/templates/company/supplier_part.html:130 order/models.py:378 #: order/templates/order/order_base.html:140 part/bom.py:285 part/bom.py:313 #: part/serializers.py:350 stock/templates/stock/item_base.html:225 @@ -3620,11 +3625,11 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:525 +#: company/models.py:526 msgid "Select supplier" msgstr "" -#: company/models.py:530 company/templates/company/supplier_part.html:140 +#: company/models.py:531 company/templates/company/supplier_part.html:140 #: part/bom.py:286 part/bom.py:314 part/serializers.py:356 #: templates/js/translated/company.js:323 templates/js/translated/part.js:1444 #: templates/js/translated/pricing.js:496 @@ -3633,53 +3638,53 @@ msgstr "" msgid "SKU" msgstr "" -#: company/models.py:531 part/serializers.py:356 +#: company/models.py:532 part/serializers.py:356 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:538 +#: company/models.py:539 msgid "Select manufacturer part" msgstr "" -#: company/models.py:544 +#: company/models.py:545 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:550 +#: company/models.py:551 msgid "Supplier part description" msgstr "" -#: company/models.py:555 company/templates/company/supplier_part.html:175 -#: part/admin.py:279 part/models.py:3602 part/templates/part/upload_bom.html:59 +#: company/models.py:556 company/templates/company/supplier_part.html:175 +#: part/admin.py:279 part/models.py:3603 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 #: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:417 +#: stock/serializers.py:418 msgid "Note" msgstr "" -#: company/models.py:559 part/models.py:1907 +#: company/models.py:560 part/models.py:1908 msgid "base cost" msgstr "" -#: company/models.py:559 part/models.py:1907 +#: company/models.py:560 part/models.py:1908 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:561 company/templates/company/supplier_part.html:161 -#: stock/admin.py:119 stock/models.py:700 +#: company/models.py:562 company/templates/company/supplier_part.html:161 +#: stock/admin.py:119 stock/models.py:701 #: stock/templates/stock/item_base.html:241 #: templates/js/translated/company.js:1241 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2124 msgid "Packaging" msgstr "" -#: company/models.py:561 +#: company/models.py:562 msgid "Part packaging" msgstr "" -#: company/models.py:564 company/serializers.py:330 +#: company/models.py:565 company/serializers.py:330 #: company/templates/company/supplier_part.html:168 #: templates/js/translated/company.js:1246 templates/js/translated/part.js:1479 #: templates/js/translated/part.js:1535 @@ -3691,23 +3696,23 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:565 +#: company/models.py:566 msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:571 part/models.py:1909 +#: company/models.py:572 part/models.py:1910 msgid "multiple" msgstr "" -#: company/models.py:571 +#: company/models.py:572 msgid "Order multiple" msgstr "" -#: company/models.py:579 company/templates/company/supplier_part.html:115 +#: company/models.py:580 company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1123 templates/js/translated/build.js:2075 -#: templates/js/translated/build.js:2982 +#: templates/js/translated/bom.js:1123 templates/js/translated/build.js:2079 +#: templates/js/translated/build.js:2986 #: templates/js/translated/model_renderers.js:202 #: templates/js/translated/part.js:636 templates/js/translated/part.js:638 #: templates/js/translated/part.js:643 @@ -3716,15 +3721,15 @@ msgstr "" msgid "Available" msgstr "" -#: company/models.py:580 +#: company/models.py:581 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:584 +#: company/models.py:585 msgid "Availability Updated" msgstr "" -#: company/models.py:585 +#: company/models.py:586 msgid "Date of last update of availability data" msgstr "" @@ -3787,15 +3792,15 @@ msgid "Delete image" msgstr "" #: company/templates/company/company_base.html:87 order/models.py:776 -#: order/models.py:1713 order/templates/order/return_order_base.html:132 -#: order/templates/order/sales_order_base.html:145 stock/models.py:719 -#: stock/models.py:720 stock/serializers.py:824 -#: stock/templates/stock/item_base.html:395 +#: order/models.py:1735 order/templates/order/return_order_base.html:132 +#: order/templates/order/sales_order_base.html:145 stock/models.py:720 +#: stock/models.py:721 stock/serializers.py:825 +#: stock/templates/stock/item_base.html:401 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:480 #: templates/js/translated/return_order.js:264 -#: templates/js/translated/sales_order.js:732 -#: templates/js/translated/stock.js:2657 +#: templates/js/translated/sales_order.js:739 +#: templates/js/translated/stock.js:2660 #: templates/js/translated/table_filters.js:697 msgid "Customer" msgstr "" @@ -3819,8 +3824,8 @@ msgstr "" #: company/templates/company/company_base.html:209 #: part/templates/part/part_base.html:533 -#: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:149 +#: templates/InvenTree/settings/user.html:88 +#: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" @@ -3890,7 +3895,7 @@ msgstr "" #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:35 -#: templates/InvenTree/index.html:276 templates/InvenTree/search.html:200 +#: templates/InvenTree/index.html:275 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:53 #: templates/js/translated/search.js:235 templates/navbar.html:50 #: users/models.py:43 @@ -3913,7 +3918,7 @@ msgstr "" #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:131 part/templates/part/part_sidebar.html:39 -#: templates/InvenTree/index.html:308 templates/InvenTree/search.html:220 +#: templates/InvenTree/index.html:307 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:55 #: templates/js/translated/search.js:249 templates/navbar.html:62 #: users/models.py:44 @@ -3931,7 +3936,7 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/detail.html:173 -#: templates/js/translated/build.js:1915 +#: templates/js/translated/build.js:1919 msgid "Assigned Stock" msgstr "" @@ -3974,7 +3979,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: templates/InvenTree/search.html:181 templates/navbar.html:49 +#: templates/InvenTree/search.html:180 templates/navbar.html:49 msgid "Manufacturers" msgstr "" @@ -4006,7 +4011,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/admin.py:60 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/search.html:191 templates/navbar.html:48 +#: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4043,7 +4048,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:226 -#: part/templates/part/detail.html:871 +#: part/templates/part/detail.html:869 msgid "Add Parameter" msgstr "" @@ -4068,11 +4073,11 @@ msgid "Contacts" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:683 +#: company/templates/company/supplier_part.html:24 stock/models.py:684 #: stock/templates/stock/item_base.html:234 #: templates/js/translated/company.js:1195 #: templates/js/translated/purchase_order.js:708 -#: templates/js/translated/stock.js:1977 +#: templates/js/translated/stock.js:1980 msgid "Supplier Part" msgstr "" @@ -4153,7 +4158,7 @@ msgstr "" msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:354 +#: company/templates/company/supplier_part.html:352 msgid "Update Part Availability" msgstr "" @@ -4165,7 +4170,7 @@ msgstr "" #: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1000 -#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2475 +#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2478 #: users/models.py:41 msgid "Stock Items" msgstr "" @@ -4182,7 +4187,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:44 templates/InvenTree/search.html:211 +#: company/views.py:44 templates/InvenTree/search.html:210 #: templates/navbar.html:60 msgid "Customers" msgstr "" @@ -4281,9 +4286,9 @@ msgstr "" #: order/admin.py:30 order/models.py:69 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 -#: templates/js/translated/order.js:302 +#: templates/js/translated/order.js:309 #: templates/js/translated/purchase_order.js:2052 -#: templates/js/translated/sales_order.js:1778 +#: templates/js/translated/sales_order.js:1797 msgid "Total Price" msgstr "" @@ -4291,7 +4296,7 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:1440 order/models.py:1169 order/models.py:1253 +#: order/api.py:1449 order/models.py:1175 order/models.py:1259 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4301,11 +4306,11 @@ msgstr "" #: templates/js/translated/purchase_order.js:114 #: templates/js/translated/purchase_order.js:709 #: templates/js/translated/purchase_order.js:1596 -#: templates/js/translated/stock.js:1957 templates/js/translated/stock.js:2605 +#: templates/js/translated/stock.js:1960 templates/js/translated/stock.js:2608 msgid "Purchase Order" msgstr "" -#: order/api.py:1444 +#: order/api.py:1453 templates/js/translated/sales_order.js:997 msgid "Unknown" msgstr "" @@ -4333,7 +4338,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:232 order/models.py:1091 order/models.py:1439 +#: order/models.py:232 order/models.py:1091 order/models.py:1451 msgid "Link to external page" msgstr "" @@ -4378,15 +4383,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:399 order/models.py:1736 +#: order/models.py:399 order/models.py:1758 msgid "Issue Date" msgstr "" -#: order/models.py:400 order/models.py:1737 +#: order/models.py:400 order/models.py:1759 msgid "Date order was issued" msgstr "" -#: order/models.py:406 order/models.py:1743 +#: order/models.py:406 order/models.py:1765 msgid "Date order was completed" msgstr "" @@ -4402,17 +4407,17 @@ msgstr "" msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:796 order/models.py:1730 +#: order/models.py:796 order/models.py:1752 msgid "Customer Reference " msgstr "" -#: order/models.py:796 order/models.py:1731 +#: order/models.py:796 order/models.py:1753 msgid "Customer order reference code" msgstr "" -#: order/models.py:798 order/models.py:1399 -#: templates/js/translated/sales_order.js:791 -#: templates/js/translated/sales_order.js:972 +#: order/models.py:798 order/models.py:1405 +#: templates/js/translated/sales_order.js:798 +#: templates/js/translated/sales_order.js:979 msgid "Shipment Date" msgstr "" @@ -4428,7 +4433,7 @@ msgstr "" msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:861 templates/js/translated/sales_order.js:451 +#: order/models.py:861 templates/js/translated/sales_order.js:458 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" @@ -4452,37 +4457,41 @@ msgstr "" msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1114 +#: order/models.py:1115 +msgid "Line item description (optional)" +msgstr "" + +#: order/models.py:1120 msgid "Context" msgstr "" -#: order/models.py:1115 +#: order/models.py:1121 msgid "Additional context for this line" msgstr "" -#: order/models.py:1124 +#: order/models.py:1130 msgid "Unit price" msgstr "" -#: order/models.py:1154 +#: order/models.py:1160 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1162 +#: order/models.py:1168 msgid "deleted" msgstr "" -#: order/models.py:1168 order/models.py:1253 order/models.py:1294 -#: order/models.py:1393 order/models.py:1526 order/models.py:1883 -#: order/models.py:1930 templates/js/translated/sales_order.js:1422 +#: order/models.py:1174 order/models.py:1259 order/models.py:1300 +#: order/models.py:1399 order/models.py:1548 order/models.py:1905 +#: order/models.py:1952 templates/js/translated/sales_order.js:1441 msgid "Order" msgstr "" -#: order/models.py:1187 +#: order/models.py:1193 msgid "Supplier part" msgstr "" -#: order/models.py:1194 order/templates/order/order_base.html:200 +#: order/models.py:1200 order/templates/order/order_base.html:200 #: templates/js/translated/part.js:1527 templates/js/translated/part.js:1559 #: templates/js/translated/purchase_order.js:1235 #: templates/js/translated/purchase_order.js:2096 @@ -4492,326 +4501,334 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1195 +#: order/models.py:1201 msgid "Number of items received" msgstr "" -#: order/models.py:1202 stock/models.py:814 stock/serializers.py:251 +#: order/models.py:1208 stock/models.py:823 stock/serializers.py:252 #: stock/templates/stock/item_base.html:184 -#: templates/js/translated/stock.js:2008 +#: templates/js/translated/stock.js:2011 msgid "Purchase Price" msgstr "" -#: order/models.py:1203 +#: order/models.py:1209 msgid "Unit purchase price" msgstr "" -#: order/models.py:1216 +#: order/models.py:1222 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1282 +#: order/models.py:1288 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1287 +#: order/models.py:1293 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1313 part/templates/part/part_pricing.html:107 +#: order/models.py:1319 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:926 msgid "Sale Price" msgstr "" -#: order/models.py:1314 +#: order/models.py:1320 msgid "Unit sale price" msgstr "" -#: order/models.py:1324 +#: order/models.py:1330 msgid "Shipped quantity" msgstr "" -#: order/models.py:1400 +#: order/models.py:1406 msgid "Date of shipment" msgstr "" -#: order/models.py:1407 +#: order/models.py:1411 templates/js/translated/sales_order.js:991 +msgid "Delivery Date" +msgstr "" + +#: order/models.py:1412 +msgid "Date of delivery of shipment" +msgstr "" + +#: order/models.py:1419 msgid "Checked By" msgstr "" -#: order/models.py:1408 +#: order/models.py:1420 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1415 order/models.py:1602 order/serializers.py:1245 -#: order/serializers.py:1373 templates/js/translated/model_renderers.js:412 +#: order/models.py:1427 order/models.py:1624 order/serializers.py:1249 +#: order/serializers.py:1377 templates/js/translated/model_renderers.js:412 msgid "Shipment" msgstr "" -#: order/models.py:1416 +#: order/models.py:1428 msgid "Shipment number" msgstr "" -#: order/models.py:1424 +#: order/models.py:1436 msgid "Tracking Number" msgstr "" -#: order/models.py:1425 +#: order/models.py:1437 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1432 +#: order/models.py:1444 msgid "Invoice Number" msgstr "" -#: order/models.py:1433 +#: order/models.py:1445 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1451 +#: order/models.py:1467 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1454 +#: order/models.py:1470 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1561 order/models.py:1563 +#: order/models.py:1583 order/models.py:1585 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1567 +#: order/models.py:1589 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1569 +#: order/models.py:1591 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1572 +#: order/models.py:1594 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1582 order/serializers.py:1107 +#: order/models.py:1604 order/serializers.py:1111 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1585 +#: order/models.py:1607 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1586 +#: order/models.py:1608 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1594 +#: order/models.py:1616 msgid "Line" msgstr "" -#: order/models.py:1603 +#: order/models.py:1625 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1616 order/models.py:1891 +#: order/models.py:1638 order/models.py:1913 #: templates/js/translated/return_order.js:686 msgid "Item" msgstr "" -#: order/models.py:1617 +#: order/models.py:1639 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1620 +#: order/models.py:1642 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1700 +#: order/models.py:1722 msgid "Return Order reference" msgstr "" -#: order/models.py:1714 +#: order/models.py:1736 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1725 +#: order/models.py:1747 msgid "Return order status" msgstr "" -#: order/models.py:1876 +#: order/models.py:1898 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1884 order/models.py:1930 +#: order/models.py:1906 order/models.py:1952 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 #: templates/js/translated/return_order.js:249 -#: templates/js/translated/stock.js:2639 +#: templates/js/translated/stock.js:2642 msgid "Return Order" msgstr "" -#: order/models.py:1892 +#: order/models.py:1914 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1897 +#: order/models.py:1919 msgid "Received Date" msgstr "" -#: order/models.py:1898 +#: order/models.py:1920 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1909 templates/js/translated/return_order.js:697 +#: order/models.py:1931 templates/js/translated/return_order.js:697 #: templates/js/translated/table_filters.js:89 msgid "Outcome" msgstr "" -#: order/models.py:1909 +#: order/models.py:1931 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1915 +#: order/models.py:1937 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:245 +#: order/serializers.py:246 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:260 order/serializers.py:1125 +#: order/serializers.py:261 order/serializers.py:1129 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:271 order/serializers.py:1136 +#: order/serializers.py:272 order/serializers.py:1140 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:384 +#: order/serializers.py:385 msgid "Order is not open" msgstr "" -#: order/serializers.py:402 +#: order/serializers.py:403 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:420 +#: order/serializers.py:421 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:425 +#: order/serializers.py:426 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:431 +#: order/serializers.py:432 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:433 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:470 order/serializers.py:1213 +#: order/serializers.py:471 order/serializers.py:1217 msgid "Line Item" msgstr "" -#: order/serializers.py:476 +#: order/serializers.py:477 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:486 order/serializers.py:607 order/serializers.py:1584 +#: order/serializers.py:487 order/serializers.py:608 order/serializers.py:1588 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:505 templates/js/translated/purchase_order.js:1059 +#: order/serializers.py:506 templates/js/translated/purchase_order.js:1059 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:513 templates/js/translated/purchase_order.js:1083 +#: order/serializers.py:514 templates/js/translated/purchase_order.js:1083 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:526 templates/js/translated/barcode.js:41 +#: order/serializers.py:527 templates/js/translated/barcode.js:41 msgid "Barcode" msgstr "" -#: order/serializers.py:527 +#: order/serializers.py:528 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:543 +#: order/serializers.py:544 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:570 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:623 order/serializers.py:1599 +#: order/serializers.py:624 order/serializers.py:1603 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:640 +#: order/serializers.py:641 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:651 +#: order/serializers.py:652 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:950 +#: order/serializers.py:951 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1005 +#: order/serializers.py:1008 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1068 order/serializers.py:1222 +#: order/serializers.py:1072 order/serializers.py:1226 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1090 +#: order/serializers.py:1094 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1235 +#: order/serializers.py:1239 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1257 order/serializers.py:1381 +#: order/serializers.py:1261 order/serializers.py:1385 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1260 order/serializers.py:1384 +#: order/serializers.py:1264 order/serializers.py:1388 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1314 +#: order/serializers.py:1318 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1324 +#: order/serializers.py:1328 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1550 +#: order/serializers.py:1554 msgid "Return order line item" msgstr "" -#: order/serializers.py:1557 +#: order/serializers.py:1561 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1560 +#: order/serializers.py:1564 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1592 +#: order/serializers.py:1596 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1673 +#: order/serializers.py:1677 msgid "Line price currency" msgstr "" @@ -5000,11 +5017,11 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:102 templates/js/translated/build.js:482 -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2291 #: templates/js/translated/purchase_order.js:653 #: templates/js/translated/purchase_order.js:1165 #: templates/js/translated/return_order.js:474 -#: templates/js/translated/sales_order.js:1045 +#: templates/js/translated/sales_order.js:1064 #: templates/js/translated/stock.js:645 templates/js/translated/stock.js:814 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5118,7 +5135,7 @@ msgstr "" #: order/templates/order/return_order_base.html:139 #: order/templates/order/sales_order_base.html:152 #: templates/js/translated/return_order.js:277 -#: templates/js/translated/sales_order.js:745 +#: templates/js/translated/sales_order.js:752 msgid "Customer Reference" msgstr "" @@ -5131,7 +5148,7 @@ msgstr "" #: templates/js/translated/part.js:1012 #: templates/js/translated/purchase_order.js:1671 #: templates/js/translated/return_order.js:349 -#: templates/js/translated/sales_order.js:803 +#: templates/js/translated/sales_order.js:810 msgid "Total Cost" msgstr "" @@ -5157,7 +5174,7 @@ msgid "Ship Items" msgstr "" #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/sales_order.js:429 +#: templates/js/translated/sales_order.js:436 msgid "Complete Sales Order" msgstr "" @@ -5184,13 +5201,13 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:333 +#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:332 msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:75 #: templates/attachment_table.html:6 templates/js/translated/bom.js:1232 -#: templates/js/translated/build.js:2188 +#: templates/js/translated/build.js:2192 msgid "Actions" msgstr "" @@ -5220,12 +5237,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:273 part/models.py:3468 part/tasks.py:285 +#: part/admin.py:33 part/admin.py:273 part/models.py:3469 part/tasks.py:285 #: stock/admin.py:101 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:275 part/models.py:3472 part/tasks.py:286 +#: part/admin.py:34 part/admin.py:275 part/models.py:3473 part/tasks.py:286 #: stock/admin.py:102 msgid "Part Name" msgstr "" @@ -5234,19 +5251,19 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271 +#: part/admin.py:36 part/models.py:886 part/templates/part/part_base.html:271 #: templates/js/translated/part.js:1166 templates/js/translated/part.js:1880 -#: templates/js/translated/stock.js:1756 +#: templates/js/translated/stock.js:1759 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279 +#: part/admin.py:37 part/models.py:893 part/templates/part/part_base.html:279 #: report/models.py:178 templates/js/translated/part.js:1171 #: templates/js/translated/part.js:1886 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:198 part/models.py:871 +#: part/admin.py:38 part/admin.py:198 part/models.py:872 #: part/templates/part/category.html:93 part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" @@ -5267,11 +5284,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179 +#: part/admin.py:46 part/models.py:861 part/templates/part/part_base.html:179 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:976 part/templates/part/part_base.html:205 +#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205 msgid "Minimum Stock" msgstr "" @@ -5282,7 +5299,7 @@ msgid "In Stock" msgstr "" #: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212 -#: templates/js/translated/bom.js:1163 templates/js/translated/build.js:2130 +#: templates/js/translated/bom.js:1163 templates/js/translated/build.js:2134 #: templates/js/translated/part.js:653 templates/js/translated/part.js:1772 #: templates/js/translated/table_filters.js:136 msgid "On Order" @@ -5292,9 +5309,9 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:64 templates/js/translated/build.js:2142 -#: templates/js/translated/build.js:2404 templates/js/translated/build.js:2989 -#: templates/js/translated/sales_order.js:1857 +#: part/admin.py:64 templates/js/translated/build.js:2146 +#: templates/js/translated/build.js:2408 templates/js/translated/build.js:2993 +#: templates/js/translated/sales_order.js:1876 #: templates/js/translated/table_filters.js:473 msgid "Allocated" msgstr "" @@ -5304,11 +5321,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2911 templates/js/translated/part.js:909 +#: part/admin.py:66 part/models.py:2912 templates/js/translated/part.js:909 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2917 templates/js/translated/part.js:919 +#: part/admin.py:67 part/models.py:2918 templates/js/translated/part.js:919 msgid "Maximum Cost" msgstr "" @@ -5325,7 +5342,7 @@ msgstr "" msgid "Category Path" msgstr "" -#: part/admin.py:202 part/models.py:388 part/templates/part/cat_link.html:3 +#: part/admin.py:202 part/models.py:389 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:23 part/templates/part/category.html:140 #: part/templates/part/category.html:160 #: part/templates/part/category_sidebar.html:9 @@ -5348,7 +5365,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:274 part/models.py:3476 +#: part/admin.py:274 part/models.py:3477 msgid "Part IPN" msgstr "" @@ -5390,7 +5407,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:175 part/models.py:124 part/models.py:919 +#: part/bom.py:175 part/models.py:124 part/models.py:920 #: part/templates/part/category.html:115 part/templates/part/part_base.html:369 msgid "Default Location" msgstr "" @@ -5400,7 +5417,7 @@ msgid "Total Stock" msgstr "" #: part/bom.py:177 part/templates/part/part_base.html:194 -#: templates/js/translated/sales_order.js:1824 +#: templates/js/translated/sales_order.js:1843 msgid "Available Stock" msgstr "" @@ -5408,7 +5425,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:72 part/models.py:3417 part/templates/part/category.html:16 +#: part/models.py:72 part/models.py:3418 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -5423,7 +5440,7 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:130 stock/models.py:124 templates/js/translated/stock.js:2481 +#: part/models.py:130 stock/models.py:124 templates/js/translated/stock.js:2484 #: templates/js/translated/table_filters.js:205 #: templates/js/translated/table_filters.js:225 msgid "Structural" @@ -5453,61 +5470,61 @@ msgstr "" msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:471 +#: part/models.py:472 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:513 part/models.py:525 +#: part/models.py:514 part/models.py:526 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:597 +#: part/models.py:598 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: part/models.py:668 +#: part/models.py:669 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:799 +#: part/models.py:800 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:804 +#: part/models.py:805 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:818 +#: part/models.py:819 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:842 part/models.py:3473 +#: part/models.py:843 part/models.py:3474 msgid "Part name" msgstr "" -#: part/models.py:848 +#: part/models.py:849 msgid "Is Template" msgstr "" -#: part/models.py:849 +#: part/models.py:850 msgid "Is this part a template part?" msgstr "" -#: part/models.py:859 +#: part/models.py:860 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:866 +#: part/models.py:867 msgid "Part description (optional)" msgstr "" -#: part/models.py:872 +#: part/models.py:873 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:879 part/models.py:3179 part/models.py:3416 +#: part/models.py:880 part/models.py:3180 part/models.py:3417 #: part/serializers.py:855 part/templates/part/part_base.html:262 #: templates/InvenTree/settings/settings_staff_js.html:204 #: templates/js/translated/notification.js:50 @@ -5515,249 +5532,249 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:880 +#: part/models.py:881 msgid "Part category" msgstr "" -#: part/models.py:886 +#: part/models.py:887 msgid "Internal Part Number" msgstr "" -#: part/models.py:891 +#: part/models.py:892 msgid "Part revision or version number" msgstr "" -#: part/models.py:917 +#: part/models.py:918 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:962 part/templates/part/part_base.html:378 +#: part/models.py:963 part/templates/part/part_base.html:378 msgid "Default Supplier" msgstr "" -#: part/models.py:963 +#: part/models.py:964 msgid "Default supplier part" msgstr "" -#: part/models.py:970 +#: part/models.py:971 msgid "Default Expiry" msgstr "" -#: part/models.py:971 +#: part/models.py:972 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:977 +#: part/models.py:978 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:984 +#: part/models.py:985 msgid "Units of measure for this part" msgstr "" -#: part/models.py:990 +#: part/models.py:991 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:996 +#: part/models.py:997 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1002 +#: part/models.py:1003 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1008 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1012 +#: part/models.py:1013 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1017 +#: part/models.py:1018 msgid "Is this part active?" msgstr "" -#: part/models.py:1022 +#: part/models.py:1023 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1024 +#: part/models.py:1025 msgid "BOM checksum" msgstr "" -#: part/models.py:1024 +#: part/models.py:1025 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1027 +#: part/models.py:1028 msgid "BOM checked by" msgstr "" -#: part/models.py:1029 +#: part/models.py:1030 msgid "BOM checked date" msgstr "" -#: part/models.py:1033 +#: part/models.py:1034 msgid "Creation User" msgstr "" -#: part/models.py:1035 +#: part/models.py:1036 msgid "User responsible for this part" msgstr "" -#: part/models.py:1039 part/templates/part/part_base.html:341 -#: stock/templates/stock/item_base.html:441 +#: part/models.py:1040 part/templates/part/part_base.html:341 +#: stock/templates/stock/item_base.html:447 #: templates/js/translated/part.js:1972 msgid "Last Stocktake" msgstr "" -#: part/models.py:1909 +#: part/models.py:1910 msgid "Sell multiple" msgstr "" -#: part/models.py:2834 +#: part/models.py:2835 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2851 +#: part/models.py:2852 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2852 +#: part/models.py:2853 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2857 +#: part/models.py:2858 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2858 +#: part/models.py:2859 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2863 +#: part/models.py:2864 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2864 +#: part/models.py:2865 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2870 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2870 +#: part/models.py:2871 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2876 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2876 +#: part/models.py:2877 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2881 +#: part/models.py:2882 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2882 +#: part/models.py:2883 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2887 +#: part/models.py:2888 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2888 +#: part/models.py:2889 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2893 +#: part/models.py:2894 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2894 +#: part/models.py:2895 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2899 +#: part/models.py:2900 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2900 +#: part/models.py:2901 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2905 +#: part/models.py:2906 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2906 +#: part/models.py:2907 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2912 +#: part/models.py:2913 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2918 +#: part/models.py:2919 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2924 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2924 +#: part/models.py:2925 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2929 +#: part/models.py:2930 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2930 +#: part/models.py:2931 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2935 +#: part/models.py:2936 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2936 +#: part/models.py:2937 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2941 +#: part/models.py:2942 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2942 +#: part/models.py:2943 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2961 +#: part/models.py:2962 msgid "Part for stocktake" msgstr "" -#: part/models.py:2966 +#: part/models.py:2967 msgid "Item Count" msgstr "" -#: part/models.py:2967 +#: part/models.py:2968 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2974 +#: part/models.py:2975 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2978 part/models.py:3061 +#: part/models.py:2979 part/models.py:3062 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin.html:62 @@ -5766,305 +5783,305 @@ msgstr "" #: templates/js/translated/part.js:1025 templates/js/translated/pricing.js:798 #: templates/js/translated/pricing.js:919 #: templates/js/translated/purchase_order.js:1650 -#: templates/js/translated/stock.js:2519 +#: templates/js/translated/stock.js:2522 msgid "Date" msgstr "" -#: part/models.py:2979 +#: part/models.py:2980 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:2987 +#: part/models.py:2988 msgid "Additional notes" msgstr "" -#: part/models.py:2995 +#: part/models.py:2996 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3000 +#: part/models.py:3001 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3001 +#: part/models.py:3002 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3006 +#: part/models.py:3007 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3007 +#: part/models.py:3008 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3068 templates/InvenTree/settings/settings_staff_js.html:428 +#: part/models.py:3069 templates/InvenTree/settings/settings_staff_js.html:428 msgid "Report" msgstr "" -#: part/models.py:3069 +#: part/models.py:3070 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3074 templates/InvenTree/settings/settings_staff_js.html:435 +#: part/models.py:3075 templates/InvenTree/settings/settings_staff_js.html:435 msgid "Part Count" msgstr "" -#: part/models.py:3075 +#: part/models.py:3076 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3083 +#: part/models.py:3084 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3219 +#: part/models.py:3220 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3236 +#: part/models.py:3237 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3256 templates/js/translated/part.js:2462 +#: part/models.py:3257 templates/js/translated/part.js:2462 msgid "Test Name" msgstr "" -#: part/models.py:3257 +#: part/models.py:3258 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3262 +#: part/models.py:3263 msgid "Test Description" msgstr "" -#: part/models.py:3263 +#: part/models.py:3264 msgid "Enter description for this test" msgstr "" -#: part/models.py:3268 templates/js/translated/part.js:2471 +#: part/models.py:3269 templates/js/translated/part.js:2471 #: templates/js/translated/table_filters.js:419 msgid "Required" msgstr "" -#: part/models.py:3269 +#: part/models.py:3270 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3274 templates/js/translated/part.js:2479 +#: part/models.py:3275 templates/js/translated/part.js:2479 msgid "Requires Value" msgstr "" -#: part/models.py:3275 +#: part/models.py:3276 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3280 templates/js/translated/part.js:2486 +#: part/models.py:3281 templates/js/translated/part.js:2486 msgid "Requires Attachment" msgstr "" -#: part/models.py:3281 +#: part/models.py:3282 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3322 +#: part/models.py:3323 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3330 +#: part/models.py:3331 msgid "Parameter Name" msgstr "" -#: part/models.py:3334 +#: part/models.py:3335 msgid "Parameter Units" msgstr "" -#: part/models.py:3339 +#: part/models.py:3340 msgid "Parameter description" msgstr "" -#: part/models.py:3372 +#: part/models.py:3373 msgid "Parent Part" msgstr "" -#: part/models.py:3374 part/models.py:3422 part/models.py:3423 +#: part/models.py:3375 part/models.py:3423 part/models.py:3424 #: templates/InvenTree/settings/settings_staff_js.html:199 msgid "Parameter Template" msgstr "" -#: part/models.py:3376 +#: part/models.py:3377 msgid "Data" msgstr "" -#: part/models.py:3376 +#: part/models.py:3377 msgid "Parameter Value" msgstr "" -#: part/models.py:3427 templates/InvenTree/settings/settings_staff_js.html:208 +#: part/models.py:3428 templates/InvenTree/settings/settings_staff_js.html:208 msgid "Default Value" msgstr "" -#: part/models.py:3428 +#: part/models.py:3429 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3465 +#: part/models.py:3466 msgid "Part ID or part name" msgstr "" -#: part/models.py:3469 +#: part/models.py:3470 msgid "Unique part ID value" msgstr "" -#: part/models.py:3477 +#: part/models.py:3478 msgid "Part IPN value" msgstr "" -#: part/models.py:3480 +#: part/models.py:3481 msgid "Level" msgstr "" -#: part/models.py:3481 +#: part/models.py:3482 msgid "BOM level" msgstr "" -#: part/models.py:3565 +#: part/models.py:3566 msgid "Select parent part" msgstr "" -#: part/models.py:3573 +#: part/models.py:3574 msgid "Sub part" msgstr "" -#: part/models.py:3574 +#: part/models.py:3575 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3580 +#: part/models.py:3581 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3584 part/templates/part/upload_bom.html:58 +#: part/models.py:3585 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:941 templates/js/translated/bom.js:994 -#: templates/js/translated/build.js:2052 +#: templates/js/translated/build.js:2056 #: templates/js/translated/table_filters.js:152 #: templates/js/translated/table_filters.js:181 #: templates/js/translated/table_filters.js:485 msgid "Optional" msgstr "" -#: part/models.py:3585 +#: part/models.py:3586 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3590 templates/js/translated/bom.js:937 -#: templates/js/translated/bom.js:1003 templates/js/translated/build.js:2043 +#: part/models.py:3591 templates/js/translated/bom.js:937 +#: templates/js/translated/bom.js:1003 templates/js/translated/build.js:2047 #: templates/js/translated/table_filters.js:156 #: templates/js/translated/table_filters.js:481 msgid "Consumable" msgstr "" -#: part/models.py:3591 +#: part/models.py:3592 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3595 part/templates/part/upload_bom.html:55 +#: part/models.py:3596 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3596 +#: part/models.py:3597 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3599 +#: part/models.py:3600 msgid "BOM item reference" msgstr "" -#: part/models.py:3602 +#: part/models.py:3603 msgid "BOM item notes" msgstr "" -#: part/models.py:3606 +#: part/models.py:3607 msgid "Checksum" msgstr "" -#: part/models.py:3606 +#: part/models.py:3607 msgid "BOM line checksum" msgstr "" -#: part/models.py:3611 templates/js/translated/table_filters.js:140 +#: part/models.py:3612 templates/js/translated/table_filters.js:140 msgid "Validated" msgstr "" -#: part/models.py:3612 +#: part/models.py:3613 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3617 part/templates/part/upload_bom.html:57 +#: part/models.py:3618 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1020 #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:177 msgid "Gets inherited" msgstr "" -#: part/models.py:3618 +#: part/models.py:3619 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3623 part/templates/part/upload_bom.html:56 +#: part/models.py:3624 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1012 msgid "Allow Variants" msgstr "" -#: part/models.py:3624 +#: part/models.py:3625 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3710 stock/models.py:576 +#: part/models.py:3711 stock/models.py:577 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3719 part/models.py:3721 +#: part/models.py:3720 part/models.py:3722 msgid "Sub part must be specified" msgstr "" -#: part/models.py:3837 +#: part/models.py:3838 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3858 +#: part/models.py:3859 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3871 +#: part/models.py:3872 msgid "Parent BOM item" msgstr "" -#: part/models.py:3879 +#: part/models.py:3880 msgid "Substitute part" msgstr "" -#: part/models.py:3894 +#: part/models.py:3895 msgid "Part 1" msgstr "" -#: part/models.py:3898 +#: part/models.py:3899 msgid "Part 2" msgstr "" -#: part/models.py:3898 +#: part/models.py:3899 msgid "Select Related Part" msgstr "" -#: part/models.py:3916 +#: part/models.py:3917 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:3920 +#: part/models.py:3921 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:162 part/serializers.py:185 stock/serializers.py:256 +#: part/serializers.py:162 part/serializers.py:185 stock/serializers.py:257 msgid "Purchase currency of this stock item" msgstr "" @@ -6468,7 +6485,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:29 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/stock.js:1913 users/models.py:39 +#: templates/js/translated/stock.js:1916 users/models.py:39 msgid "Stocktake" msgstr "" @@ -6609,13 +6626,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312 -#: templates/js/translated/order.js:112 templates/js/translated/tables.js:183 +#: templates/js/translated/order.js:113 templates/js/translated/tables.js:183 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313 -#: templates/js/translated/order.js:113 +#: templates/js/translated/order.js:114 msgid "Select file format" msgstr "" @@ -6721,12 +6738,12 @@ msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:220 -#: stock/templates/stock/item_base.html:378 +#: stock/templates/stock/item_base.html:384 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:229 -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 msgid "Allocated to Sales Orders" msgstr "" @@ -6838,7 +6855,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:1182 templates/js/translated/part.js:1769 #: templates/js/translated/part.js:1925 templates/js/translated/stock.js:986 -#: templates/js/translated/stock.js:1790 templates/navbar.html:31 +#: templates/js/translated/stock.js:1793 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -6868,10 +6885,10 @@ msgid "Refresh Part Pricing" msgstr "" #: part/templates/part/prices.html:25 stock/admin.py:129 -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:442 #: templates/js/translated/company.js:1291 #: templates/js/translated/company.js:1301 -#: templates/js/translated/stock.js:1943 +#: templates/js/translated/stock.js:1946 msgid "Last Updated" msgstr "" @@ -6939,7 +6956,7 @@ msgstr "" msgid "No Stock" msgstr "" -#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:168 +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:167 msgid "Low Stock" msgstr "" @@ -7356,11 +7373,11 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:30 #: report/templates/report/inventree_so_report_base.html:30 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:513 +#: templates/js/translated/order.js:298 templates/js/translated/pricing.js:513 #: templates/js/translated/pricing.js:582 #: templates/js/translated/pricing.js:806 #: templates/js/translated/purchase_order.js:2042 -#: templates/js/translated/sales_order.js:1768 +#: templates/js/translated/sales_order.js:1787 msgid "Unit Price" msgstr "" @@ -7373,21 +7390,21 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 #: templates/js/translated/purchase_order.js:1944 -#: templates/js/translated/sales_order.js:1743 +#: templates/js/translated/sales_order.js:1762 msgid "Total" msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:724 stock/templates/stock/item_base.html:312 -#: templates/js/translated/build.js:472 templates/js/translated/build.js:1362 -#: templates/js/translated/build.js:1928 +#: stock/models.py:725 stock/templates/stock/item_base.html:312 +#: templates/js/translated/build.js:472 templates/js/translated/build.js:1366 +#: templates/js/translated/build.js:1932 #: templates/js/translated/model_renderers.js:198 #: templates/js/translated/return_order.js:508 #: templates/js/translated/return_order.js:688 -#: templates/js/translated/sales_order.js:264 -#: templates/js/translated/sales_order.js:1548 -#: templates/js/translated/sales_order.js:1633 +#: templates/js/translated/sales_order.js:267 +#: templates/js/translated/sales_order.js:1567 +#: templates/js/translated/sales_order.js:1652 #: templates/js/translated/stock.js:527 msgid "Serial Number" msgstr "" @@ -7401,12 +7418,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2216 templates/js/translated/stock.js:1383 +#: stock/models.py:2240 templates/js/translated/stock.js:1383 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2222 +#: stock/models.py:2246 msgid "Result" msgstr "" @@ -7433,7 +7450,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:168 #: stock/admin.py:104 templates/js/translated/stock.js:631 -#: templates/js/translated/stock.js:802 templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:802 templates/js/translated/stock.js:2813 msgid "Serial" msgstr "" @@ -7474,7 +7491,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:114 stock/models.py:707 +#: stock/admin.py:114 stock/models.py:708 #: stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" @@ -7499,54 +7516,54 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:131 stock/models.py:780 -#: stock/templates/stock/item_base.html:423 -#: templates/js/translated/stock.js:1927 +#: stock/admin.py:131 stock/models.py:789 +#: stock/templates/stock/item_base.html:429 +#: templates/js/translated/stock.js:1930 msgid "Expiry Date" msgstr "" -#: stock/api.py:418 templates/js/translated/table_filters.js:369 +#: stock/api.py:419 templates/js/translated/table_filters.js:369 msgid "External Location" msgstr "" -#: stock/api.py:579 +#: stock/api.py:580 msgid "Quantity is required" msgstr "" -#: stock/api.py:586 +#: stock/api.py:587 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:612 +#: stock/api.py:613 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:621 +#: stock/api.py:622 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:640 +#: stock/api.py:641 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:54 stock/models.py:691 +#: stock/models.py:54 stock/models.py:692 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" #: stock/models.py:55 stock/templates/stock/location.html:177 -#: templates/InvenTree/search.html:167 templates/js/translated/search.js:208 +#: templates/InvenTree/search.html:166 templates/js/translated/search.js:208 #: users/models.py:40 msgid "Stock Locations" msgstr "" -#: stock/models.py:118 stock/models.py:819 +#: stock/models.py:118 stock/models.py:828 #: stock/templates/stock/item_base.html:248 msgid "Owner" msgstr "" -#: stock/models.py:119 stock/models.py:820 +#: stock/models.py:119 stock/models.py:829 msgid "Select Owner" msgstr "" @@ -7554,7 +7571,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:132 templates/js/translated/stock.js:2490 +#: stock/models.py:132 templates/js/translated/stock.js:2493 #: templates/js/translated/table_filters.js:209 msgid "External" msgstr "" @@ -7567,213 +7584,221 @@ msgstr "" msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:556 +#: stock/models.py:557 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:582 stock/serializers.py:173 +#: stock/models.py:583 stock/serializers.py:174 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:599 +#: stock/models.py:600 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:609 stock/models.py:618 +#: stock/models.py:610 stock/models.py:619 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:610 +#: stock/models.py:611 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:632 +#: stock/models.py:633 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:638 +#: stock/models.py:639 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:652 +#: stock/models.py:653 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:666 +#: stock/models.py:667 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:676 +#: stock/models.py:677 msgid "Base part" msgstr "" -#: stock/models.py:684 +#: stock/models.py:685 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:694 +#: stock/models.py:695 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:701 +#: stock/models.py:702 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:710 +#: stock/models.py:711 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:726 +#: stock/models.py:727 msgid "Serial number for this item" msgstr "" -#: stock/models.py:740 +#: stock/models.py:741 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:745 +#: stock/models.py:746 msgid "Stock Quantity" msgstr "" -#: stock/models.py:752 +#: stock/models.py:753 msgid "Source Build" msgstr "" -#: stock/models.py:754 +#: stock/models.py:755 msgid "Build for this stock item" msgstr "" -#: stock/models.py:765 -msgid "Source Purchase Order" +#: stock/models.py:761 stock/templates/stock/item_base.html:364 +msgid "Consumed By" msgstr "" -#: stock/models.py:768 -msgid "Purchase order for this stock item" +#: stock/models.py:763 +msgid "Build order which consumed this stock item" msgstr "" #: stock/models.py:774 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:777 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:783 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:781 +#: stock/models.py:790 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:796 +#: stock/models.py:805 msgid "Delete on deplete" msgstr "" -#: stock/models.py:796 +#: stock/models.py:805 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:815 +#: stock/models.py:824 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:843 +#: stock/models.py:852 msgid "Converted to part" msgstr "" -#: stock/models.py:1361 +#: stock/models.py:1377 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1367 +#: stock/models.py:1383 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1373 +#: stock/models.py:1389 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1376 +#: stock/models.py:1392 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1379 +#: stock/models.py:1395 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 stock/serializers.py:373 +#: stock/models.py:1402 stock/serializers.py:374 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1457 +#: stock/models.py:1473 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1460 +#: stock/models.py:1476 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1463 +#: stock/models.py:1479 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1466 +#: stock/models.py:1482 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1469 +#: stock/models.py:1485 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1472 +#: stock/models.py:1488 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1479 stock/serializers.py:974 +#: stock/models.py:1495 stock/serializers.py:975 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1483 +#: stock/models.py:1499 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1487 +#: stock/models.py:1503 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1491 +#: stock/models.py:1507 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1660 +#: stock/models.py:1676 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2134 +#: stock/models.py:2158 msgid "Entry notes" msgstr "" -#: stock/models.py:2192 +#: stock/models.py:2216 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2198 +#: stock/models.py:2222 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2217 +#: stock/models.py:2241 msgid "Test name" msgstr "" -#: stock/models.py:2223 +#: stock/models.py:2247 msgid "Test result" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2253 msgid "Test output value" msgstr "" -#: stock/models.py:2236 +#: stock/models.py:2260 msgid "Test result attachment" msgstr "" -#: stock/models.py:2242 +#: stock/models.py:2266 msgid "Test notes" msgstr "" @@ -7781,128 +7806,128 @@ msgstr "" msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:165 +#: stock/serializers.py:166 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:253 +#: stock/serializers.py:254 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:307 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:318 +#: stock/serializers.py:319 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:324 +#: stock/serializers.py:325 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:335 stock/serializers.py:931 stock/serializers.py:1173 +#: stock/serializers.py:336 stock/serializers.py:932 stock/serializers.py:1174 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:342 +#: stock/serializers.py:343 msgid "Optional note field" msgstr "" -#: stock/serializers.py:352 +#: stock/serializers.py:353 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:413 +#: stock/serializers.py:414 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:426 +#: stock/serializers.py:427 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:433 +#: stock/serializers.py:434 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:470 +#: stock/serializers.py:471 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:475 stock/serializers.py:556 +#: stock/serializers.py:476 stock/serializers.py:557 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:509 +#: stock/serializers.py:510 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:520 +#: stock/serializers.py:521 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:551 +#: stock/serializers.py:552 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:786 +#: stock/serializers.py:787 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:791 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:794 +#: stock/serializers.py:795 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:825 +#: stock/serializers.py:826 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:831 +#: stock/serializers.py:832 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:839 +#: stock/serializers.py:840 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:849 stock/serializers.py:1080 +#: stock/serializers.py:850 stock/serializers.py:1081 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:938 +#: stock/serializers.py:939 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:943 +#: stock/serializers.py:944 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:944 +#: stock/serializers.py:945 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:949 +#: stock/serializers.py:950 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:950 +#: stock/serializers.py:951 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:960 +#: stock/serializers.py:961 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1042 +#: stock/serializers.py:1043 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1070 +#: stock/serializers.py:1071 msgid "Stock transaction notes" msgstr "" @@ -7943,7 +7968,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2957 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2960 msgid "Install Stock Item" msgstr "" @@ -8096,77 +8121,77 @@ msgstr "" msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:388 -#: templates/js/translated/build.js:1954 +#: stock/templates/stock/item_base.html:394 +#: templates/js/translated/build.js:1958 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:403 +#: stock/templates/stock/item_base.html:409 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:415 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:427 +#: stock/templates/stock/item_base.html:433 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:427 +#: stock/templates/stock/item_base.html:433 #: templates/js/translated/table_filters.js:377 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:429 +#: stock/templates/stock/item_base.html:435 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:429 +#: stock/templates/stock/item_base.html:435 #: templates/js/translated/table_filters.js:383 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:445 +#: stock/templates/stock/item_base.html:451 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:497 -#: templates/js/translated/stock.js:1706 +#: stock/templates/stock/item_base.html:503 +#: templates/js/translated/stock.js:1709 msgid "stock item" msgstr "" -#: stock/templates/stock/item_base.html:522 +#: stock/templates/stock/item_base.html:528 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:531 +#: stock/templates/stock/item_base.html:537 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:542 +#: stock/templates/stock/item_base.html:548 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:612 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:609 +#: stock/templates/stock/item_base.html:615 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:610 +#: stock/templates/stock/item_base.html:616 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:618 +#: stock/templates/stock/item_base.html:624 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:648 +#: stock/templates/stock/item_base.html:654 msgid "Return to Stock" msgstr "" @@ -8241,7 +8266,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:287 -#: templates/js/translated/stock.js:2279 +#: templates/js/translated/stock.js:2282 msgid "stock location" msgstr "" @@ -8347,51 +8372,51 @@ msgstr "" msgid "Recently Updated" msgstr "" -#: templates/InvenTree/index.html:181 +#: templates/InvenTree/index.html:180 msgid "Depleted Stock" msgstr "" -#: templates/InvenTree/index.html:194 +#: templates/InvenTree/index.html:193 msgid "Required for Build Orders" msgstr "" -#: templates/InvenTree/index.html:209 +#: templates/InvenTree/index.html:208 msgid "Expired Stock" msgstr "" -#: templates/InvenTree/index.html:223 +#: templates/InvenTree/index.html:222 msgid "Stale Stock" msgstr "" -#: templates/InvenTree/index.html:248 +#: templates/InvenTree/index.html:247 msgid "Build Orders In Progress" msgstr "" -#: templates/InvenTree/index.html:259 +#: templates/InvenTree/index.html:258 msgid "Overdue Build Orders" msgstr "" -#: templates/InvenTree/index.html:279 +#: templates/InvenTree/index.html:278 msgid "Outstanding Purchase Orders" msgstr "" -#: templates/InvenTree/index.html:290 +#: templates/InvenTree/index.html:289 msgid "Overdue Purchase Orders" msgstr "" -#: templates/InvenTree/index.html:311 +#: templates/InvenTree/index.html:310 msgid "Outstanding Sales Orders" msgstr "" -#: templates/InvenTree/index.html:322 +#: templates/InvenTree/index.html:321 msgid "Overdue Sales Orders" msgstr "" -#: templates/InvenTree/index.html:348 +#: templates/InvenTree/index.html:347 msgid "InvenTree News" msgstr "" -#: templates/InvenTree/index.html:350 +#: templates/InvenTree/index.html:349 msgid "Current News" msgstr "" @@ -8858,165 +8883,149 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:12 +#: templates/InvenTree/settings/user.html:13 msgid "Account Settings" msgstr "" -#: templates/InvenTree/settings/user.html:18 +#: templates/InvenTree/settings/user.html:19 #: templates/account/password_reset_from_key.html:4 #: templates/account/password_reset_from_key.html:7 msgid "Change Password" msgstr "" -#: templates/InvenTree/settings/user.html:23 +#: templates/InvenTree/settings/user.html:24 #: templates/js/translated/helpers.js:54 templates/js/translated/pricing.js:614 #: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" -#: templates/InvenTree/settings/user.html:32 +#: templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "" -#: templates/InvenTree/settings/user.html:36 +#: templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: templates/InvenTree/settings/user.html:40 +#: templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:54 +#: templates/InvenTree/settings/user.html:55 msgid "The following email addresses are associated with your account:" msgstr "" -#: templates/InvenTree/settings/user.html:75 +#: templates/InvenTree/settings/user.html:76 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:77 +#: templates/InvenTree/settings/user.html:78 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:79 +#: templates/InvenTree/settings/user.html:80 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:85 +#: templates/InvenTree/settings/user.html:86 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:86 +#: templates/InvenTree/settings/user.html:87 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:96 +#: templates/InvenTree/settings/user.html:97 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." msgstr "" -#: templates/InvenTree/settings/user.html:104 +#: templates/InvenTree/settings/user.html:105 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:109 +#: templates/InvenTree/settings/user.html:110 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:117 -msgid "Social Accounts" -msgstr "" - -#: templates/InvenTree/settings/user.html:122 -msgid "You can sign in to your account using any of the following third party accounts:" -msgstr "" - -#: templates/InvenTree/settings/user.html:158 -msgid "There are no social network accounts connected to this account." -msgstr "" - -#: templates/InvenTree/settings/user.html:164 -msgid "Add a 3rd Party Account" -msgstr "" - -#: templates/InvenTree/settings/user.html:174 +#: templates/InvenTree/settings/user.html:120 msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:179 +#: templates/InvenTree/settings/user.html:125 msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:135 msgid "TOTP" msgstr "" -#: templates/InvenTree/settings/user.html:195 +#: templates/InvenTree/settings/user.html:141 msgid "Static" msgstr "" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:150 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: templates/InvenTree/settings/user.html:211 +#: templates/InvenTree/settings/user.html:157 msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:212 +#: templates/InvenTree/settings/user.html:158 msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user.html:160 msgid "Remove multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:222 +#: templates/InvenTree/settings/user.html:168 msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:228 +#: templates/InvenTree/settings/user.html:174 msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:229 +#: templates/InvenTree/settings/user.html:175 msgid "Log Out Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:238 +#: templates/InvenTree/settings/user.html:184 msgid "unknown on unknown" msgstr "" -#: templates/InvenTree/settings/user.html:239 +#: templates/InvenTree/settings/user.html:185 msgid "unknown" msgstr "" -#: templates/InvenTree/settings/user.html:243 +#: templates/InvenTree/settings/user.html:189 msgid "IP Address" msgstr "" -#: templates/InvenTree/settings/user.html:244 +#: templates/InvenTree/settings/user.html:190 msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:245 +#: templates/InvenTree/settings/user.html:191 msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:258 +#: templates/InvenTree/settings/user.html:204 #, python-format msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:260 +#: templates/InvenTree/settings/user.html:206 #, python-format msgid "%(time)s ago" msgstr "" -#: templates/InvenTree/settings/user.html:272 +#: templates/InvenTree/settings/user.html:218 msgid "Do you really want to remove the selected email address?" msgstr "" @@ -9093,6 +9102,26 @@ msgstr "" msgid "Search Settings" msgstr "" +#: templates/InvenTree/settings/user_sso.html:9 +msgid "Single Sign On Accounts" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:16 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:52 +msgid "There are no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:58 +msgid "Add SSO Account" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:67 +msgid "Single Sign On is not enabled for this server" +msgstr "" + #: templates/about.html:9 msgid "InvenTree Version" msgstr "" @@ -9174,7 +9203,7 @@ msgid "This email confirmation link expired or is invalid. Please As a final step, please complete the following form:" msgstr "" +#: templates/socialaccount/snippets/provider_list.html:26 +msgid "Provider has not been configured" +msgstr "" + +#: templates/socialaccount/snippets/provider_list.html:35 +msgid "No SSO providers have been configured" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 8b7ccac3e7..6e7d6ace36 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -105,75 +105,75 @@ msgstr "Указанный основной адрес электронной п msgid "The provided email domain is not approved." msgstr "Указанный домен электронной почты не утверждён." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Ошибка соединения" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Произошло исключение" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Изображение слишком большое" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "недопустимое количество" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Пустая строка серийного номера" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Серийных номеров не найдено" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/sl/LC_MESSAGES/django.po b/InvenTree/locale/sl/LC_MESSAGES/django.po index 91f1ddc9ef..8c68d6685d 100644 --- a/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -105,75 +105,75 @@ msgstr "Podana epošta ni veljavna." msgid "The provided email domain is not approved." msgstr "Domena epošte ni podprta." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Napaka povezave" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Odziv serverja: napravilni status kode" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Pojavila se je izjema" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Odziv serverja: napačna dolžina vrednosti" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Prevelika velikost slike" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Prenos slike presegel največjo velikost" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Oddaljeni server vrnil prazen odziv" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Podani URL ni veljavna slikovna datoteka" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Podana napačna količina" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Prazno polje serijske številke" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Dvojna serijska številka" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Nepravilni obseg skupine: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "Obseg skupine {g} presega dovoljeno vrednost ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Nepravilno zaporedje skupine: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Serijske številke niso najdene" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Število unikatnih serijskih številk ({s}) se mora ujemati s količino ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Odstranite oznako HTML iz te vrednosti" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 56e0b8f5ae..c91e4206f0 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -105,75 +105,75 @@ msgstr "Den angivna primära e-postadressen är inte giltig." msgid "The provided email domain is not approved." msgstr "Den angivna e-postdomänen är inte godkänd." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Anslutningsfel" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Servern svarade med ogiltig statuskod" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Undantag inträffade" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Servern svarade med ogiltigt innehållslängdsvärde" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Bilden är för stor" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Nedladdning av bilder överskred maximal storlek" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Fjärrservern returnerade tomt svar" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Angiven URL är inte en giltig bildfil" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Tom serienummersträng" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ogiltigt gruppområde: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ogiltig gruppsekvens: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Inga serienummer hittades" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Antal unika serienummer ({s}) måste matcha antal ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "Ta bort HTML-taggar från detta värde" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 58404399c8..72acff91e7 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -105,75 +105,75 @@ msgstr "" msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "การเชื่อมต่อขัดข้อง" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "ไฟล์รูปภาพมีขนาดใหญ่เกินไป" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "ปริมาณสินค้าไม่ถูกต้อง" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "หมายเลขซีเรียลซ้ำกัน" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "ไม่พบหมายเลขซีเรียล" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index 470ab2d9d5..fcf139a991 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -105,75 +105,75 @@ msgstr "Sağlanan e-posta adresi geçerli değil." msgid "The provided email domain is not approved." msgstr "Sağlanan e-posta alanı onaylanmadı." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Bağlantı hatası" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Sunucu geçersiz durum kodu ile cevap verdi" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "İstisna oluştu" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Sunucu geçersiz Content-Length değeriyle yanıt verdi" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Resim boyutu çok büyük" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Resim indirme boyutu izin verilenden büyük" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Uzak sunucu boş cevap döndü" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Boş seri numarası dizesi" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Yinelenen seri" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Geçersiz grup: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "Seri numarası bulunamadı" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index a86e3a953d..10e3c2a740 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -105,75 +105,75 @@ msgstr "Địa chỉ email chính đã cung cấp không hợp lệ." msgid "The provided email domain is not approved." msgstr "Miền email được cung cấp không được phê duyệt." -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "Lỗi kết nối" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "Máy chủ phản hồi với mã trạng thái không hợp lệ" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "Xảy ra Exception" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "Máy chủ đã phản hồi với giá trị Content-Length không hợp lệ" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "Hình ảnh quá lớn" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "Tải xuống hình ảnh vượt quá kích thước tối đa" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "Máy chủ trả về phản hồi trống" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "Số lượng cung cấp không hợp lệ" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "Chuỗi số sê-ri trống" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "Trùng lặp sê-ri" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Phạm vi nhóm không hợp lệ: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index b7212cbccb..aa0bbd10b2 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 11:29+0000\n" -"PO-Revision-Date: 2023-05-16 13:01\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" +"PO-Revision-Date: 2023-05-17 13:16\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -105,75 +105,75 @@ msgstr "所提供的主要电子邮件地址无效。" msgid "The provided email domain is not approved." msgstr "提供的电子邮件域未被核准。" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "连接错误" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "服务器响应状态码无效" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "发生异常" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "服务器响应的内容长度值无效" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "图片尺寸过大" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "图像下载超过最大尺寸" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "远程服务器返回了空响应" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "空序列号字符串" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "重复的序列号" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "无效的组范围: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "组 {g} 超出了允许的数量 ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "无效的组序列: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "从这个值中删除 HTML 标签" diff --git a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index 424d7d907f..5b4e15c2ec 100644 --- a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-14 09:15+0000\n" +"POT-Creation-Date: 2023-05-16 21:37+0000\n" "PO-Revision-Date: 2023-02-28 22:38\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" @@ -34,25 +34,25 @@ msgid "Enter date" msgstr "输入日期" #: InvenTree/fields.py:204 InvenTree/models.py:764 build/serializers.py:387 -#: build/serializers.py:464 build/templates/build/sidebar.html:21 -#: company/models.py:556 company/templates/company/sidebar.html:35 +#: build/serializers.py:464 build/templates/build/sidebar.html:23 +#: company/models.py:557 company/templates/company/sidebar.html:35 #: order/models.py:1086 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:2986 part/templates/part/part_sidebar.html:63 +#: part/models.py:2987 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2133 stock/models.py:2241 -#: stock/serializers.py:341 stock/serializers.py:474 stock/serializers.py:555 -#: stock/serializers.py:838 stock/serializers.py:937 stock/serializers.py:1069 +#: stock/admin.py:121 stock/models.py:2157 stock/models.py:2265 +#: stock/serializers.py:342 stock/serializers.py:475 stock/serializers.py:556 +#: stock/serializers.py:839 stock/serializers.py:938 stock/serializers.py:1070 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:130 templates/js/translated/bom.js:1220 -#: templates/js/translated/company.js:1272 templates/js/translated/order.js:322 +#: templates/js/translated/company.js:1272 templates/js/translated/order.js:329 #: templates/js/translated/part.js:1020 #: templates/js/translated/purchase_order.js:2127 #: templates/js/translated/return_order.js:740 -#: templates/js/translated/sales_order.js:1003 -#: templates/js/translated/sales_order.js:1910 -#: templates/js/translated/stock.js:1424 templates/js/translated/stock.js:2125 +#: templates/js/translated/sales_order.js:1022 +#: templates/js/translated/sales_order.js:1929 +#: templates/js/translated/stock.js:1424 templates/js/translated/stock.js:2128 msgid "Notes" msgstr "备注" @@ -105,75 +105,75 @@ msgstr "所提供的主要电子邮件地址无效。" msgid "The provided email domain is not approved." msgstr "提供的电子邮件域未被核准。" -#: InvenTree/helpers.py:195 +#: InvenTree/helpers.py:191 msgid "Connection error" msgstr "连接错误" -#: InvenTree/helpers.py:199 InvenTree/helpers.py:204 +#: InvenTree/helpers.py:195 InvenTree/helpers.py:200 msgid "Server responded with invalid status code" msgstr "服务器响应状态码无效" -#: InvenTree/helpers.py:201 +#: InvenTree/helpers.py:197 msgid "Exception occurred" msgstr "发生异常" -#: InvenTree/helpers.py:209 +#: InvenTree/helpers.py:205 msgid "Server responded with invalid Content-Length value" msgstr "服务器响应的内容长度值无效" -#: InvenTree/helpers.py:212 +#: InvenTree/helpers.py:208 msgid "Image size is too large" msgstr "图片尺寸过大" -#: InvenTree/helpers.py:224 +#: InvenTree/helpers.py:220 msgid "Image download exceeded maximum size" msgstr "图像下载超过最大尺寸" -#: InvenTree/helpers.py:229 +#: InvenTree/helpers.py:225 msgid "Remote server returned empty response" msgstr "远程服务器返回了空响应" -#: InvenTree/helpers.py:237 +#: InvenTree/helpers.py:233 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/helpers.py:629 order/models.py:438 order/models.py:599 +#: InvenTree/helpers.py:625 order/models.py:438 order/models.py:599 msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/helpers.py:637 +#: InvenTree/helpers.py:633 msgid "Empty serial number string" msgstr "空序列号字符串" -#: InvenTree/helpers.py:667 +#: InvenTree/helpers.py:663 msgid "Duplicate serial" msgstr "重复的序列号" -#: InvenTree/helpers.py:700 InvenTree/helpers.py:735 +#: InvenTree/helpers.py:696 InvenTree/helpers.py:731 #, python-brace-format msgid "Invalid group range: {g}" msgstr "无效的组范围: {g}" -#: InvenTree/helpers.py:729 +#: InvenTree/helpers.py:725 #, python-brace-format msgid "Group range {g} exceeds allowed quantity ({q})" msgstr "组 {g} 超出了允许的数量 ({q})" -#: InvenTree/helpers.py:753 InvenTree/helpers.py:760 InvenTree/helpers.py:775 +#: InvenTree/helpers.py:749 InvenTree/helpers.py:756 InvenTree/helpers.py:771 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "无效的组序列: {g}" -#: InvenTree/helpers.py:785 +#: InvenTree/helpers.py:781 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:788 +#: InvenTree/helpers.py:784 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" -#: InvenTree/helpers.py:987 +#: InvenTree/helpers.py:914 msgid "Remove HTML tags from this value" msgstr "从这个值中删除 HTML 标签" @@ -221,7 +221,7 @@ msgstr "缺少文件" msgid "Missing external link" msgstr "缺少外部链接" -#: InvenTree/models.py:484 stock/models.py:2235 +#: InvenTree/models.py:484 stock/models.py:2259 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -232,23 +232,23 @@ msgid "Select file to attach" msgstr "选择附件" #: InvenTree/models.py:491 common/models.py:2671 company/models.py:130 -#: company/models.py:304 company/models.py:543 order/models.py:232 -#: order/models.py:1090 order/models.py:1438 part/admin.py:39 -#: part/models.py:897 part/templates/part/part_scheduling.html:11 +#: company/models.py:304 company/models.py:544 order/models.py:232 +#: order/models.py:1090 order/models.py:1450 part/admin.py:39 +#: part/models.py:898 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:120 templates/js/translated/company.js:962 -#: templates/js/translated/company.js:1261 templates/js/translated/order.js:326 +#: templates/js/translated/company.js:1261 templates/js/translated/order.js:333 #: templates/js/translated/part.js:1957 #: templates/js/translated/purchase_order.js:1967 #: templates/js/translated/purchase_order.js:2131 #: templates/js/translated/return_order.js:744 -#: templates/js/translated/sales_order.js:992 -#: templates/js/translated/sales_order.js:1915 +#: templates/js/translated/sales_order.js:1011 +#: templates/js/translated/sales_order.js:1934 msgid "Link" msgstr "链接" -#: InvenTree/models.py:492 build/models.py:290 part/models.py:898 -#: stock/models.py:734 +#: InvenTree/models.py:492 build/models.py:290 part/models.py:899 +#: stock/models.py:735 msgid "Link to external URL" msgstr "链接到外部 URL" @@ -263,11 +263,11 @@ msgstr "文件注释" #: InvenTree/models.py:501 InvenTree/models.py:502 common/models.py:2120 #: common/models.py:2121 common/models.py:2344 common/models.py:2345 -#: common/models.py:2601 common/models.py:2602 part/models.py:2994 -#: part/models.py:3082 part/models.py:3161 part/models.py:3181 +#: common/models.py:2601 common/models.py:2602 part/models.py:2995 +#: part/models.py:3083 part/models.py:3162 part/models.py:3182 #: plugin/models.py:221 plugin/models.py:222 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:2734 +#: templates/js/translated/stock.js:2737 msgid "User" msgstr "用户" @@ -309,8 +309,8 @@ msgid "Invalid choice" msgstr "选择无效" #: InvenTree/models.py:646 InvenTree/models.py:647 common/models.py:2330 -#: company/models.py:388 label/models.py:102 part/models.py:843 -#: part/models.py:3329 plugin/models.py:41 report/models.py:159 +#: company/models.py:388 label/models.py:102 part/models.py:844 +#: part/models.py:3330 plugin/models.py:41 report/models.py:159 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:59 @@ -322,18 +322,18 @@ msgstr "选择无效" #: templates/js/translated/company.js:856 #: templates/js/translated/company.js:1056 templates/js/translated/part.js:1126 #: templates/js/translated/part.js:1282 templates/js/translated/part.js:2340 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/stock.js:2428 msgid "Name" msgstr "名称" #: InvenTree/models.py:653 build/models.py:163 #: build/templates/build/detail.html:24 common/models.py:110 -#: company/models.py:310 company/models.py:549 +#: company/models.py:310 company/models.py:550 #: company/templates/company/company_base.html:72 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:109 -#: order/models.py:228 part/admin.py:194 part/admin.py:276 part/models.py:865 -#: part/models.py:3338 part/templates/part/category.html:81 +#: order/models.py:228 order/models.py:1114 part/admin.py:194 part/admin.py:276 +#: part/models.py:866 part/models.py:3339 part/templates/part/category.html:81 #: part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:172 #: report/models.py:586 report/models.py:630 @@ -344,18 +344,19 @@ msgstr "名称" #: templates/InvenTree/settings/settings_staff_js.html:75 #: templates/InvenTree/settings/settings_staff_js.html:333 #: templates/js/translated/bom.js:602 templates/js/translated/bom.js:903 -#: templates/js/translated/build.js:2794 templates/js/translated/company.js:496 +#: templates/js/translated/build.js:2798 templates/js/translated/company.js:496 #: templates/js/translated/company.js:973 -#: templates/js/translated/company.js:1236 templates/js/translated/part.js:1178 -#: templates/js/translated/part.js:1620 templates/js/translated/part.js:1894 -#: templates/js/translated/part.js:2376 templates/js/translated/part.js:2467 +#: templates/js/translated/company.js:1236 templates/js/translated/order.js:280 +#: templates/js/translated/part.js:1178 templates/js/translated/part.js:1620 +#: templates/js/translated/part.js:1894 templates/js/translated/part.js:2376 +#: templates/js/translated/part.js:2467 #: templates/js/translated/purchase_order.js:1625 #: templates/js/translated/purchase_order.js:1771 #: templates/js/translated/purchase_order.js:1949 #: templates/js/translated/return_order.js:282 -#: templates/js/translated/sales_order.js:750 -#: templates/js/translated/stock.js:1403 templates/js/translated/stock.js:1778 -#: templates/js/translated/stock.js:2457 templates/js/translated/stock.js:2529 +#: templates/js/translated/sales_order.js:757 +#: templates/js/translated/stock.js:1403 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2460 templates/js/translated/stock.js:2532 msgid "Description" msgstr "描述信息" @@ -368,7 +369,7 @@ msgid "parent" msgstr "上级项" #: InvenTree/models.py:669 InvenTree/models.py:670 -#: templates/js/translated/part.js:2385 templates/js/translated/stock.js:2466 +#: templates/js/translated/part.js:2385 templates/js/translated/stock.js:2469 msgid "Path" msgstr "路径" @@ -406,12 +407,12 @@ msgstr "服务器错误" msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:60 part/models.py:3698 +#: InvenTree/serializers.py:60 part/models.py:3699 msgid "Must be a valid number" msgstr "必须是有效数字" #: InvenTree/serializers.py:90 company/models.py:152 -#: company/templates/company/company_base.html:107 part/models.py:2833 +#: company/templates/company/company_base.html:107 part/models.py:2834 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -634,10 +635,10 @@ msgstr "已退回" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:183 order/models.py:1323 -#: templates/js/translated/sales_order.js:1457 -#: templates/js/translated/sales_order.js:1581 -#: templates/js/translated/sales_order.js:1885 +#: InvenTree/status_codes.py:183 order/models.py:1329 +#: templates/js/translated/sales_order.js:1476 +#: templates/js/translated/sales_order.js:1600 +#: templates/js/translated/sales_order.js:1904 msgid "Shipped" msgstr "已发货" @@ -727,7 +728,7 @@ msgstr "从父项拆分" msgid "Split child item" msgstr "拆分子项" -#: InvenTree/status_codes.py:331 templates/js/translated/stock.js:2204 +#: InvenTree/status_codes.py:331 templates/js/translated/stock.js:2207 msgid "Merged stock items" msgstr "合并的库存项目" @@ -757,7 +758,7 @@ msgstr "生产订单输出已完成" msgid "Build order output rejected" msgstr "已创建生产订单输出" -#: InvenTree/status_codes.py:341 +#: InvenTree/status_codes.py:341 templates/js/translated/stock.js:1640 msgid "Consumed by build order" msgstr "被生产订单消耗" @@ -825,11 +826,11 @@ msgstr "备损不能超过 100%" msgid "Invalid value for overage" msgstr "无效的备损值" -#: InvenTree/views.py:409 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:409 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "编辑用户信息" -#: InvenTree/views.py:421 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:421 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "设置密码" @@ -858,7 +859,7 @@ msgstr "在删除前必须取消生产" #: report/templates/report/inventree_build_order_base.html:105 #: templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:884 templates/js/translated/stock.js:2590 +#: templates/js/translated/build.js:888 templates/js/translated/stock.js:2593 msgid "Build Order" msgstr "生产订单" @@ -866,7 +867,7 @@ msgstr "生产订单" #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:119 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:245 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:244 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/search.js:216 users/models.py:42 @@ -882,18 +883,18 @@ msgid "Build Order Reference" msgstr "相关生产订单" #: build/models.py:155 order/models.py:355 order/models.py:762 -#: order/models.py:1084 order/models.py:1699 part/admin.py:278 -#: part/models.py:3599 part/templates/part/upload_bom.html:54 +#: order/models.py:1084 order/models.py:1721 part/admin.py:278 +#: part/models.py:3600 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 #: report/templates/report/inventree_so_report_base.html:28 #: templates/js/translated/bom.js:739 templates/js/translated/bom.js:913 -#: templates/js/translated/build.js:2037 templates/js/translated/order.js:272 +#: templates/js/translated/build.js:2041 templates/js/translated/order.js:273 #: templates/js/translated/pricing.js:372 #: templates/js/translated/purchase_order.js:1992 #: templates/js/translated/return_order.js:693 -#: templates/js/translated/sales_order.js:1749 +#: templates/js/translated/sales_order.js:1768 msgid "Reference" msgstr "引用" @@ -913,12 +914,12 @@ msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" #: build/models.py:180 build/templates/build/build_base.html:98 -#: build/templates/build/detail.html:29 company/models.py:722 -#: order/models.py:1186 order/models.py:1302 order/models.py:1303 -#: part/models.py:387 part/models.py:2846 part/models.py:2960 -#: part/models.py:3100 part/models.py:3119 part/models.py:3138 -#: part/models.py:3159 part/models.py:3251 part/models.py:3372 -#: part/models.py:3464 part/models.py:3564 part/models.py:3878 +#: build/templates/build/detail.html:29 company/models.py:723 +#: order/models.py:1192 order/models.py:1308 order/models.py:1309 +#: part/models.py:388 part/models.py:2847 part/models.py:2961 +#: part/models.py:3101 part/models.py:3120 part/models.py:3139 +#: part/models.py:3160 part/models.py:3252 part/models.py:3373 +#: part/models.py:3465 part/models.py:3565 part/models.py:3879 #: part/serializers.py:849 part/serializers.py:1252 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -929,7 +930,7 @@ msgstr "此次生产匹配的订单" #: report/templates/report/inventree_po_report_base.html:27 #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:155 stock/serializers.py:508 +#: stock/serializers.py:156 stock/serializers.py:509 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -937,8 +938,8 @@ msgstr "此次生产匹配的订单" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:516 templates/js/translated/bom.js:601 #: templates/js/translated/bom.js:738 templates/js/translated/bom.js:857 -#: templates/js/translated/build.js:1342 templates/js/translated/build.js:1904 -#: templates/js/translated/build.js:2403 templates/js/translated/build.js:2805 +#: templates/js/translated/build.js:1346 templates/js/translated/build.js:1908 +#: templates/js/translated/build.js:2407 templates/js/translated/build.js:2809 #: templates/js/translated/company.js:322 #: templates/js/translated/company.js:807 #: templates/js/translated/company.js:914 @@ -951,14 +952,14 @@ msgstr "此次生产匹配的订单" #: templates/js/translated/purchase_order.js:1934 #: templates/js/translated/return_order.js:507 #: templates/js/translated/return_order.js:674 -#: templates/js/translated/sales_order.js:249 -#: templates/js/translated/sales_order.js:1133 -#: templates/js/translated/sales_order.js:1532 -#: templates/js/translated/sales_order.js:1733 +#: templates/js/translated/sales_order.js:252 +#: templates/js/translated/sales_order.js:1152 +#: templates/js/translated/sales_order.js:1551 +#: templates/js/translated/sales_order.js:1752 #: templates/js/translated/stock.js:607 templates/js/translated/stock.js:773 -#: templates/js/translated/stock.js:985 templates/js/translated/stock.js:1734 -#: templates/js/translated/stock.js:2555 templates/js/translated/stock.js:2792 -#: templates/js/translated/stock.js:2929 +#: templates/js/translated/stock.js:985 templates/js/translated/stock.js:1737 +#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2795 +#: templates/js/translated/stock.js:2932 msgid "Part" msgstr "商品" @@ -975,8 +976,8 @@ msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" #: build/models.py:202 build/serializers.py:900 -#: templates/js/translated/build.js:2391 -#: templates/js/translated/sales_order.js:1121 +#: templates/js/translated/build.js:2395 +#: templates/js/translated/sales_order.js:1140 msgid "Source Location" msgstr "来源地点" @@ -1016,8 +1017,8 @@ msgstr "生产状态" msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:245 build/serializers.py:229 order/serializers.py:504 -#: stock/models.py:738 templates/js/translated/purchase_order.js:1058 +#: build/models.py:245 build/serializers.py:229 order/serializers.py:505 +#: stock/models.py:739 templates/js/translated/purchase_order.js:1058 msgid "Batch Code" msgstr "批量代码" @@ -1025,10 +1026,10 @@ msgstr "批量代码" msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:252 order/models.py:240 part/models.py:1031 +#: build/models.py:252 order/models.py:240 part/models.py:1032 #: part/templates/part/part_base.html:312 #: templates/js/translated/return_order.js:307 -#: templates/js/translated/sales_order.js:775 +#: templates/js/translated/sales_order.js:782 msgid "Creation Date" msgstr "创建日期" @@ -1040,8 +1041,8 @@ msgstr "预计完成日期" msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" -#: build/models.py:260 order/models.py:405 order/models.py:1742 -#: templates/js/translated/build.js:2890 +#: build/models.py:260 order/models.py:405 order/models.py:1764 +#: templates/js/translated/build.js:2894 msgid "Completion Date" msgstr "完成日期:" @@ -1049,7 +1050,7 @@ msgstr "完成日期:" msgid "completed by" msgstr "完成人" -#: build/models.py:274 templates/js/translated/build.js:2850 +#: build/models.py:274 templates/js/translated/build.js:2854 msgid "Issued by" msgstr "发布者" @@ -1061,10 +1062,10 @@ msgstr "发布此生产订单的用户" #: build/templates/build/detail.html:122 order/models.py:254 #: order/templates/order/order_base.html:214 #: order/templates/order/return_order_base.html:182 -#: order/templates/order/sales_order_base.html:222 part/models.py:1035 +#: order/templates/order/sales_order_base.html:222 part/models.py:1036 #: part/templates/part/part_base.html:392 #: report/templates/report/inventree_build_order_base.html:158 -#: templates/js/translated/build.js:2862 +#: templates/js/translated/build.js:2866 #: templates/js/translated/purchase_order.js:1682 #: templates/js/translated/return_order.js:327 #: templates/js/translated/table_filters.js:446 @@ -1081,7 +1082,7 @@ msgstr "构建此订单的用户或组" #: order/templates/order/order_base.html:171 #: order/templates/order/return_order_base.html:146 #: order/templates/order/sales_order_base.html:181 -#: part/templates/part/part_base.html:385 stock/models.py:732 +#: part/templates/part/part_base.html:385 stock/models.py:733 #: stock/templates/stock/item_base.html:201 msgid "External Link" msgstr "外部链接" @@ -1124,11 +1125,11 @@ msgstr "生产项必须指定生产产出,因为主部件已经被标记为可 msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1275 order/models.py:1576 +#: build/models.py:1275 order/models.py:1598 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1281 order/models.py:1579 +#: build/models.py:1281 order/models.py:1601 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" @@ -1140,44 +1141,44 @@ msgstr "序列化库存的数量必须是 1" msgid "Selected stock item not found in BOM" msgstr "在BOM中找不到选定的库存项" -#: build/models.py:1413 stock/templates/stock/item_base.html:170 -#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2778 +#: build/models.py:1422 stock/templates/stock/item_base.html:170 +#: templates/InvenTree/search.html:139 templates/js/translated/build.js:2782 #: templates/navbar.html:38 msgid "Build" msgstr "生产" -#: build/models.py:1414 +#: build/models.py:1423 msgid "Build to allocate parts" msgstr "生产以分配部件" -#: build/models.py:1430 build/serializers.py:749 order/serializers.py:1056 -#: order/serializers.py:1077 stock/serializers.py:412 stock/serializers.py:769 -#: stock/serializers.py:895 stock/templates/stock/item_base.html:10 +#: build/models.py:1439 build/serializers.py:749 order/serializers.py:1060 +#: order/serializers.py:1081 stock/serializers.py:413 stock/serializers.py:770 +#: stock/serializers.py:896 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:195 -#: templates/js/translated/build.js:894 templates/js/translated/build.js:899 -#: templates/js/translated/build.js:2405 templates/js/translated/build.js:2975 -#: templates/js/translated/sales_order.js:250 -#: templates/js/translated/sales_order.js:1134 -#: templates/js/translated/sales_order.js:1433 -#: templates/js/translated/sales_order.js:1438 -#: templates/js/translated/sales_order.js:1539 -#: templates/js/translated/sales_order.js:1629 +#: templates/js/translated/build.js:898 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:2409 templates/js/translated/build.js:2979 +#: templates/js/translated/sales_order.js:253 +#: templates/js/translated/sales_order.js:1153 +#: templates/js/translated/sales_order.js:1452 +#: templates/js/translated/sales_order.js:1457 +#: templates/js/translated/sales_order.js:1558 +#: templates/js/translated/sales_order.js:1648 #: templates/js/translated/stock.js:608 templates/js/translated/stock.js:774 -#: templates/js/translated/stock.js:2675 +#: templates/js/translated/stock.js:2678 msgid "Stock Item" msgstr "库存项" -#: build/models.py:1431 +#: build/models.py:1440 msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1443 build/serializers.py:197 +#: build/models.py:1452 build/serializers.py:197 #: build/templates/build/build_base.html:103 #: build/templates/build/detail.html:34 common/models.py:2152 -#: order/models.py:1070 order/models.py:1620 order/serializers.py:1230 +#: order/models.py:1070 order/models.py:1642 order/serializers.py:1234 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277 -#: part/forms.py:47 part/models.py:2973 part/models.py:3580 +#: part/forms.py:47 part/models.py:2974 part/models.py:3581 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1186,18 +1187,18 @@ msgstr "源库存项" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:103 stock/serializers.py:305 +#: stock/admin.py:103 stock/serializers.py:306 #: stock/templates/stock/item_base.html:288 #: stock/templates/stock/item_base.html:296 #: stock/templates/stock/item_base.html:343 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:518 templates/js/translated/bom.js:740 #: templates/js/translated/bom.js:921 templates/js/translated/build.js:474 -#: templates/js/translated/build.js:921 templates/js/translated/build.js:1364 -#: templates/js/translated/build.js:1930 templates/js/translated/build.js:2406 +#: templates/js/translated/build.js:925 templates/js/translated/build.js:1368 +#: templates/js/translated/build.js:1934 templates/js/translated/build.js:2410 #: templates/js/translated/company.js:1406 #: templates/js/translated/model_renderers.js:204 -#: templates/js/translated/order.js:279 templates/js/translated/part.js:901 +#: templates/js/translated/order.js:286 templates/js/translated/part.js:901 #: templates/js/translated/part.js:1469 templates/js/translated/part.js:2904 #: templates/js/translated/pricing.js:367 #: templates/js/translated/pricing.js:460 @@ -1206,32 +1207,32 @@ msgstr "源库存项" #: templates/js/translated/purchase_order.js:710 #: templates/js/translated/purchase_order.js:1774 #: templates/js/translated/purchase_order.js:1998 -#: templates/js/translated/sales_order.js:266 -#: templates/js/translated/sales_order.js:1135 -#: templates/js/translated/sales_order.js:1452 -#: templates/js/translated/sales_order.js:1545 -#: templates/js/translated/sales_order.js:1635 -#: templates/js/translated/sales_order.js:1755 +#: templates/js/translated/sales_order.js:269 +#: templates/js/translated/sales_order.js:1154 +#: templates/js/translated/sales_order.js:1471 +#: templates/js/translated/sales_order.js:1564 +#: templates/js/translated/sales_order.js:1654 +#: templates/js/translated/sales_order.js:1774 #: templates/js/translated/stock.js:495 templates/js/translated/stock.js:633 -#: templates/js/translated/stock.js:804 templates/js/translated/stock.js:2719 -#: templates/js/translated/stock.js:2804 +#: templates/js/translated/stock.js:804 templates/js/translated/stock.js:2722 +#: templates/js/translated/stock.js:2807 msgid "Quantity" msgstr "数量" -#: build/models.py:1444 +#: build/models.py:1453 msgid "Stock quantity to allocate to build" msgstr "分配到生产的数量" -#: build/models.py:1452 +#: build/models.py:1461 msgid "Install into" msgstr "安装到" -#: build/models.py:1453 +#: build/models.py:1462 msgid "Destination stock item" msgstr "目标库存项" #: build/serializers.py:148 build/serializers.py:778 -#: templates/js/translated/build.js:1352 +#: templates/js/translated/build.js:1356 msgid "Build Output" msgstr "生产产出" @@ -1256,9 +1257,9 @@ msgid "Enter quantity for build output" msgstr "输入生产产出数量" #: build/serializers.py:212 build/serializers.py:769 order/models.py:436 -#: order/serializers.py:377 order/serializers.py:499 part/serializers.py:1094 -#: part/serializers.py:1415 stock/models.py:592 stock/models.py:1370 -#: stock/serializers.py:314 +#: order/serializers.py:378 order/serializers.py:500 part/serializers.py:1094 +#: part/serializers.py:1415 stock/models.py:593 stock/models.py:1386 +#: stock/serializers.py:315 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" @@ -1270,8 +1271,8 @@ msgstr "对于可追踪的部件,需要整数型数值" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "需要整数型数值,因为BOM包含可追踪的部件" -#: build/serializers.py:236 order/serializers.py:512 order/serializers.py:1234 -#: stock/serializers.py:323 templates/js/translated/purchase_order.js:1082 +#: build/serializers.py:236 order/serializers.py:513 order/serializers.py:1238 +#: stock/serializers.py:324 templates/js/translated/purchase_order.js:1082 #: templates/js/translated/stock.js:298 templates/js/translated/stock.js:496 msgid "Serial Numbers" msgstr "序列号" @@ -1288,7 +1289,7 @@ msgstr "自动分配序列号" msgid "Automatically allocate required items with matching serial numbers" msgstr "自动为所需项分配对应的序列号" -#: build/serializers.py:286 stock/api.py:668 +#: build/serializers.py:286 stock/api.py:669 msgid "The following serial numbers already exist or are invalid" msgstr "以下序列号已存在或无效" @@ -1296,23 +1297,23 @@ msgstr "以下序列号已存在或无效" msgid "A list of build outputs must be provided" msgstr "必须提供生产产出列表" -#: build/serializers.py:375 build/serializers.py:446 order/serializers.py:485 -#: order/serializers.py:606 order/serializers.py:1583 part/serializers.py:861 -#: stock/serializers.py:334 stock/serializers.py:469 stock/serializers.py:550 -#: stock/serializers.py:930 stock/serializers.py:1172 -#: stock/templates/stock/item_base.html:384 +#: build/serializers.py:375 build/serializers.py:446 order/serializers.py:486 +#: order/serializers.py:607 order/serializers.py:1587 part/serializers.py:861 +#: stock/serializers.py:335 stock/serializers.py:470 stock/serializers.py:551 +#: stock/serializers.py:931 stock/serializers.py:1173 +#: stock/templates/stock/item_base.html:390 #: templates/js/translated/barcode.js:517 -#: templates/js/translated/barcode.js:765 templates/js/translated/build.js:906 -#: templates/js/translated/build.js:1945 +#: templates/js/translated/barcode.js:765 templates/js/translated/build.js:910 +#: templates/js/translated/build.js:1949 #: templates/js/translated/purchase_order.js:1107 #: templates/js/translated/purchase_order.js:1197 -#: templates/js/translated/sales_order.js:1445 -#: templates/js/translated/sales_order.js:1556 -#: templates/js/translated/sales_order.js:1564 -#: templates/js/translated/sales_order.js:1643 +#: templates/js/translated/sales_order.js:1464 +#: templates/js/translated/sales_order.js:1575 +#: templates/js/translated/sales_order.js:1583 +#: templates/js/translated/sales_order.js:1662 #: templates/js/translated/stock.js:609 templates/js/translated/stock.js:775 -#: templates/js/translated/stock.js:987 templates/js/translated/stock.js:1898 -#: templates/js/translated/stock.js:2569 +#: templates/js/translated/stock.js:987 templates/js/translated/stock.js:1901 +#: templates/js/translated/stock.js:2572 msgid "Location" msgstr "地点" @@ -1344,15 +1345,15 @@ msgstr "已完成生产产出的仓储地点" #: build/serializers.py:453 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:788 -#: order/models.py:1725 order/serializers.py:522 stock/admin.py:106 -#: stock/templates/stock/item_base.html:417 -#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2834 +#: order/models.py:1747 order/serializers.py:523 stock/admin.py:106 +#: stock/templates/stock/item_base.html:423 +#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2838 #: templates/js/translated/purchase_order.js:1237 #: templates/js/translated/purchase_order.js:1641 #: templates/js/translated/return_order.js:299 -#: templates/js/translated/sales_order.js:767 -#: templates/js/translated/stock.js:1873 templates/js/translated/stock.js:2693 -#: templates/js/translated/stock.js:2820 +#: templates/js/translated/sales_order.js:774 +#: templates/js/translated/stock.js:1876 templates/js/translated/stock.js:2696 +#: templates/js/translated/stock.js:2823 msgid "Status" msgstr "状态" @@ -1416,7 +1417,7 @@ msgstr "接受库存项未被完成分配至此生产订单" msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:622 order/serializers.py:259 order/serializers.py:1124 +#: build/serializers.py:622 order/serializers.py:260 order/serializers.py:1128 msgid "Accept Incomplete" msgstr "接受未完成" @@ -1432,8 +1433,8 @@ msgstr "所需生产数量尚未完成" msgid "Build order has incomplete outputs" msgstr "生产订单有未完成的产出" -#: build/serializers.py:672 build/serializers.py:726 part/models.py:3487 -#: part/models.py:3870 +#: build/serializers.py:672 build/serializers.py:726 part/models.py:3488 +#: part/models.py:3871 msgid "BOM Item" msgstr "BOM项" @@ -1449,11 +1450,11 @@ msgstr "生产产出必须指向相同的生产" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单指向相同的部件" -#: build/serializers.py:755 stock/serializers.py:782 +#: build/serializers.py:755 stock/serializers.py:783 msgid "Item must be in stock" msgstr "项目必须在库存中" -#: build/serializers.py:804 order/serializers.py:1114 +#: build/serializers.py:804 order/serializers.py:1118 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出了限制" @@ -1470,7 +1471,7 @@ msgstr "对于未被追踪的部件,无法指定生产产出" msgid "This stock item has already been allocated to this build output" msgstr "此库存项已被分配至此生产产出" -#: build/serializers.py:845 order/serializers.py:1398 +#: build/serializers.py:845 order/serializers.py:1402 msgid "Allocation items must be provided" msgstr "必须提供分配的项" @@ -1634,13 +1635,13 @@ msgstr "库存尚未被完全分配到此构建订单" #: order/templates/order/return_order_base.html:165 #: order/templates/order/sales_order_base.html:193 #: report/templates/report/inventree_build_order_base.html:125 -#: templates/js/translated/build.js:2882 templates/js/translated/part.js:1488 +#: templates/js/translated/build.js:2886 templates/js/translated/part.js:1488 #: templates/js/translated/purchase_order.js:1658 #: templates/js/translated/purchase_order.js:2074 #: templates/js/translated/return_order.js:315 #: templates/js/translated/return_order.js:715 -#: templates/js/translated/sales_order.js:783 -#: templates/js/translated/sales_order.js:1798 +#: templates/js/translated/sales_order.js:790 +#: templates/js/translated/sales_order.js:1817 msgid "Target Date" msgstr "预计日期" @@ -1669,18 +1670,18 @@ msgid "Completed" msgstr "已完成" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1442 order/models.py:1295 -#: order/models.py:1394 order/models.py:1526 +#: build/templates/build/detail.html:101 order/api.py:1451 order/models.py:1301 +#: order/models.py:1400 order/models.py:1548 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 #: report/templates/report/inventree_so_report_base.html:14 -#: stock/templates/stock/item_base.html:364 +#: stock/templates/stock/item_base.html:370 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:898 -#: templates/js/translated/sales_order.js:717 -#: templates/js/translated/sales_order.js:940 -#: templates/js/translated/stock.js:2622 +#: templates/js/translated/sales_order.js:724 +#: templates/js/translated/sales_order.js:947 +#: templates/js/translated/stock.js:2625 msgid "Sales Order" msgstr "销售订单" @@ -1691,7 +1692,7 @@ msgid "Issued By" msgstr "发布者" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2799 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2803 msgid "Priority" msgstr "优先级" @@ -1723,7 +1724,7 @@ msgstr "库存来源" msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用的地点获得。" -#: build/templates/build/detail.html:49 order/models.py:1213 +#: build/templates/build/detail.html:49 order/models.py:1219 #: templates/js/translated/purchase_order.js:2116 msgid "Destination" msgstr "目的地" @@ -1738,11 +1739,11 @@ msgstr "已分配的部件" #: build/templates/build/detail.html:80 stock/admin.py:105 #: stock/templates/stock/item_base.html:163 -#: templates/js/translated/build.js:1371 +#: templates/js/translated/build.js:1375 #: templates/js/translated/model_renderers.js:209 #: templates/js/translated/purchase_order.js:1203 -#: templates/js/translated/stock.js:1057 templates/js/translated/stock.js:1887 -#: templates/js/translated/stock.js:2827 +#: templates/js/translated/stock.js:1057 templates/js/translated/stock.js:1890 +#: templates/js/translated/stock.js:2830 #: templates/js/translated/table_filters.js:255 #: templates/js/translated/table_filters.js:346 msgid "Batch" @@ -1752,7 +1753,7 @@ msgstr "批量" #: order/templates/order/order_base.html:177 #: order/templates/order/return_order_base.html:152 #: order/templates/order/sales_order_base.html:187 -#: templates/js/translated/build.js:2842 +#: templates/js/translated/build.js:2846 msgid "Created" msgstr "已创建" @@ -1764,7 +1765,7 @@ msgstr "无预计日期" msgid "Build not complete" msgstr "生产未完成" -#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:19 msgid "Child Build Orders" msgstr "子生产订单" @@ -1772,7 +1773,7 @@ msgstr "子生产订单" msgid "Allocate Stock to Build" msgstr "为生产分配库存" -#: build/templates/build/detail.html:183 templates/js/translated/build.js:2215 +#: build/templates/build/detail.html:183 templates/js/translated/build.js:2219 msgid "Unallocate stock" msgstr "未分配库存" @@ -1868,11 +1869,17 @@ msgstr "删除选中的构建输出" msgid "Delete outputs" msgstr "删除输出" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:11 +#, fuzzy +#| msgid "Minimum Stock" +msgid "Consumed Stock" +msgstr "最低库存" + +#: build/templates/build/detail.html:300 msgid "Completed Build Outputs" msgstr "已完成构建输出" -#: build/templates/build/detail.html:300 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:312 build/templates/build/sidebar.html:21 #: company/templates/company/detail.html:261 #: company/templates/company/manufacturer_part.html:151 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1888,15 +1895,15 @@ msgstr "已完成构建输出" msgid "Attachments" msgstr "附件" -#: build/templates/build/detail.html:315 +#: build/templates/build/detail.html:327 msgid "Build Notes" msgstr "生产备注" -#: build/templates/build/detail.html:479 +#: build/templates/build/detail.html:500 msgid "Allocation Complete" msgstr "分配完成" -#: build/templates/build/detail.html:480 +#: build/templates/build/detail.html:501 msgid "All untracked stock items have been allocated" msgstr "所有未跟踪的库存项目都已分配" @@ -1908,11 +1915,11 @@ msgstr "新建生产订单" msgid "Build Order Details" msgstr "生产订单详情" -#: build/templates/build/sidebar.html:12 +#: build/templates/build/sidebar.html:14 msgid "Incomplete Outputs" msgstr "未完成输出" -#: build/templates/build/sidebar.html:15 +#: build/templates/build/sidebar.html:17 msgid "Completed Outputs" msgstr "已完成输出" @@ -1967,7 +1974,7 @@ msgstr "最后一次更新时间" #: templates/InvenTree/settings/settings_staff_js.html:70 #: templates/js/translated/purchase_order.js:1629 #: templates/js/translated/return_order.js:286 -#: templates/js/translated/sales_order.js:754 +#: templates/js/translated/sales_order.js:761 #: templates/js/translated/table_filters.js:20 #: templates/project_code_data.html:6 #, fuzzy @@ -2264,7 +2271,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1157 part/admin.py:55 part/models.py:3374 +#: common/models.py:1157 part/admin.py:55 part/models.py:3375 #: report/models.py:165 templates/js/translated/table_filters.js:105 #: templates/js/translated/table_filters.js:660 msgid "Template" @@ -2274,7 +2281,7 @@ msgstr "模板" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1164 part/admin.py:51 part/admin.py:283 part/models.py:989 +#: common/models.py:1164 part/admin.py:51 part/admin.py:283 part/models.py:990 #: templates/js/translated/bom.js:1594 #: templates/js/translated/table_filters.js:272 #: templates/js/translated/table_filters.js:619 @@ -2285,7 +2292,7 @@ msgstr "组装" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1171 part/admin.py:52 part/models.py:995 +#: common/models.py:1171 part/admin.py:52 part/models.py:996 #: templates/js/translated/table_filters.js:627 msgid "Component" msgstr "组件" @@ -2294,7 +2301,7 @@ msgstr "组件" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1178 part/admin.py:53 part/models.py:1006 +#: common/models.py:1178 part/admin.py:53 part/models.py:1007 msgid "Purchaseable" msgstr "可购买" @@ -2302,7 +2309,7 @@ msgstr "可购买" msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:1185 part/admin.py:54 part/models.py:1011 +#: common/models.py:1185 part/admin.py:54 part/models.py:1012 #: templates/js/translated/table_filters.js:648 msgid "Salable" msgstr "可销售" @@ -2311,7 +2318,7 @@ msgstr "可销售" msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:1192 part/admin.py:56 part/models.py:1001 +#: common/models.py:1192 part/admin.py:56 part/models.py:1002 #: templates/js/translated/table_filters.js:113 #: templates/js/translated/table_filters.js:189 #: templates/js/translated/table_filters.js:664 @@ -2322,7 +2329,7 @@ msgstr "可追踪" msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:1199 part/admin.py:57 part/models.py:1021 +#: common/models.py:1199 part/admin.py:57 part/models.py:1022 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:109 #: templates/js/translated/table_filters.js:668 @@ -3282,7 +3289,7 @@ msgid "Price break quantity" msgstr "" #: common/models.py:2160 company/serializers.py:435 order/admin.py:43 -#: order/models.py:1123 order/models.py:1914 +#: order/models.py:1129 order/models.py:1936 #: templates/js/translated/company.js:1411 templates/js/translated/part.js:1543 #: templates/js/translated/pricing.js:607 #: templates/js/translated/return_order.js:705 @@ -3305,7 +3312,7 @@ msgstr "" msgid "Name for this webhook" msgstr "" -#: common/models.py:2336 part/admin.py:50 part/models.py:1016 +#: common/models.py:2336 part/admin.py:50 part/models.py:1017 #: plugin/models.py:47 templates/js/translated/table_filters.js:101 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:435 @@ -3407,7 +3414,7 @@ msgstr "" msgid "Was this news item read?" msgstr "" -#: common/models.py:2712 company/models.py:141 part/models.py:910 +#: common/models.py:2712 company/models.py:141 part/models.py:911 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3523,7 +3530,7 @@ msgid "Contact phone number" msgstr "联系电话" #: company/models.py:124 company/templates/company/company_base.html:133 -#: templates/InvenTree/settings/user.html:48 +#: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:644 msgid "Email" msgstr "电子邮件" @@ -3577,17 +3584,17 @@ msgstr "该公司使用的默认货币" #: company/models.py:221 company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:179 templates/js/translated/company.js:473 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:473 msgid "Company" msgstr "公司" -#: company/models.py:276 company/models.py:514 stock/models.py:674 -#: stock/serializers.py:154 stock/templates/stock/item_base.html:143 +#: company/models.py:276 company/models.py:515 stock/models.py:675 +#: stock/serializers.py:155 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:591 msgid "Base Part" msgstr "" -#: company/models.py:280 company/models.py:518 +#: company/models.py:280 company/models.py:519 msgid "Select part" msgstr "选择商品" @@ -3630,7 +3637,7 @@ msgstr "" msgid "Manufacturer part description" msgstr "制造商商品描述" -#: company/models.py:358 company/models.py:382 company/models.py:537 +#: company/models.py:358 company/models.py:382 company/models.py:538 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:218 @@ -3643,7 +3650,7 @@ msgstr "参数名称" #: company/models.py:395 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2228 templates/js/translated/company.js:857 +#: stock/models.py:2252 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1291 #: templates/js/translated/stock.js:1410 msgid "Value" @@ -3653,8 +3660,8 @@ msgstr "数值" msgid "Parameter value" msgstr "参数值" -#: company/models.py:402 part/admin.py:40 part/models.py:983 -#: part/models.py:3334 part/templates/part/part_base.html:286 +#: company/models.py:402 part/admin.py:40 part/models.py:984 +#: part/models.py:3335 part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings_staff_js.html:327 #: templates/js/translated/company.js:1068 templates/js/translated/part.js:1297 msgid "Units" @@ -3664,11 +3671,11 @@ msgstr "单位" msgid "Parameter units" msgstr "参数单位" -#: company/models.py:482 +#: company/models.py:483 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:524 company/templates/company/company_base.html:82 +#: company/models.py:525 company/templates/company/company_base.html:82 #: company/templates/company/supplier_part.html:130 order/models.py:378 #: order/templates/order/order_base.html:140 part/bom.py:285 part/bom.py:313 #: part/serializers.py:350 stock/templates/stock/item_base.html:225 @@ -3682,11 +3689,11 @@ msgstr "" msgid "Supplier" msgstr "供应商" -#: company/models.py:525 +#: company/models.py:526 msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:530 company/templates/company/supplier_part.html:140 +#: company/models.py:531 company/templates/company/supplier_part.html:140 #: part/bom.py:286 part/bom.py:314 part/serializers.py:356 #: templates/js/translated/company.js:323 templates/js/translated/part.js:1444 #: templates/js/translated/pricing.js:496 @@ -3695,53 +3702,53 @@ msgstr "选择供应商" msgid "SKU" msgstr "" -#: company/models.py:531 part/serializers.py:356 +#: company/models.py:532 part/serializers.py:356 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:538 +#: company/models.py:539 msgid "Select manufacturer part" msgstr "选择制造商商品" -#: company/models.py:544 +#: company/models.py:545 msgid "URL for external supplier part link" msgstr "外部供货商商品链接URL" -#: company/models.py:550 +#: company/models.py:551 msgid "Supplier part description" msgstr "供应商商品描述" -#: company/models.py:555 company/templates/company/supplier_part.html:175 -#: part/admin.py:279 part/models.py:3602 part/templates/part/upload_bom.html:59 +#: company/models.py:556 company/templates/company/supplier_part.html:175 +#: part/admin.py:279 part/models.py:3603 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 #: report/templates/report/inventree_so_report_base.html:32 -#: stock/serializers.py:417 +#: stock/serializers.py:418 msgid "Note" msgstr "备注" -#: company/models.py:559 part/models.py:1907 +#: company/models.py:560 part/models.py:1908 msgid "base cost" msgstr "" -#: company/models.py:559 part/models.py:1907 +#: company/models.py:560 part/models.py:1908 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" -#: company/models.py:561 company/templates/company/supplier_part.html:161 -#: stock/admin.py:119 stock/models.py:700 +#: company/models.py:562 company/templates/company/supplier_part.html:161 +#: stock/admin.py:119 stock/models.py:701 #: stock/templates/stock/item_base.html:241 #: templates/js/translated/company.js:1241 -#: templates/js/translated/stock.js:2121 +#: templates/js/translated/stock.js:2124 msgid "Packaging" msgstr "打包" -#: company/models.py:561 +#: company/models.py:562 msgid "Part packaging" msgstr "商品打包" -#: company/models.py:564 company/serializers.py:330 +#: company/models.py:565 company/serializers.py:330 #: company/templates/company/supplier_part.html:168 #: templates/js/translated/company.js:1246 templates/js/translated/part.js:1479 #: templates/js/translated/part.js:1535 @@ -3753,23 +3760,23 @@ msgstr "商品打包" msgid "Pack Quantity" msgstr "" -#: company/models.py:565 +#: company/models.py:566 msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:571 part/models.py:1909 +#: company/models.py:572 part/models.py:1910 msgid "multiple" msgstr "" -#: company/models.py:571 +#: company/models.py:572 msgid "Order multiple" msgstr "" -#: company/models.py:579 company/templates/company/supplier_part.html:115 +#: company/models.py:580 company/templates/company/supplier_part.html:115 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1123 templates/js/translated/build.js:2075 -#: templates/js/translated/build.js:2982 +#: templates/js/translated/bom.js:1123 templates/js/translated/build.js:2079 +#: templates/js/translated/build.js:2986 #: templates/js/translated/model_renderers.js:202 #: templates/js/translated/part.js:636 templates/js/translated/part.js:638 #: templates/js/translated/part.js:643 @@ -3778,15 +3785,15 @@ msgstr "" msgid "Available" msgstr "空闲" -#: company/models.py:580 +#: company/models.py:581 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:584 +#: company/models.py:585 msgid "Availability Updated" msgstr "" -#: company/models.py:585 +#: company/models.py:586 msgid "Date of last update of availability data" msgstr "" @@ -3851,15 +3858,15 @@ msgid "Delete image" msgstr "" #: company/templates/company/company_base.html:87 order/models.py:776 -#: order/models.py:1713 order/templates/order/return_order_base.html:132 -#: order/templates/order/sales_order_base.html:145 stock/models.py:719 -#: stock/models.py:720 stock/serializers.py:824 -#: stock/templates/stock/item_base.html:395 +#: order/models.py:1735 order/templates/order/return_order_base.html:132 +#: order/templates/order/sales_order_base.html:145 stock/models.py:720 +#: stock/models.py:721 stock/serializers.py:825 +#: stock/templates/stock/item_base.html:401 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:480 #: templates/js/translated/return_order.js:264 -#: templates/js/translated/sales_order.js:732 -#: templates/js/translated/stock.js:2657 +#: templates/js/translated/sales_order.js:739 +#: templates/js/translated/stock.js:2660 #: templates/js/translated/table_filters.js:697 msgid "Customer" msgstr "客户" @@ -3883,8 +3890,8 @@ msgstr "" #: company/templates/company/company_base.html:209 #: part/templates/part/part_base.html:533 -#: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:149 +#: templates/InvenTree/settings/user.html:88 +#: templates/InvenTree/settings/user_sso.html:43 msgid "Remove" msgstr "" @@ -3954,7 +3961,7 @@ msgstr "供货商库存" #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 #: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:35 -#: templates/InvenTree/index.html:276 templates/InvenTree/search.html:200 +#: templates/InvenTree/index.html:275 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:53 #: templates/js/translated/search.js:235 templates/navbar.html:50 #: users/models.py:43 @@ -3977,7 +3984,7 @@ msgstr "新建采购订单" #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 #: part/templates/part/detail.html:131 part/templates/part/part_sidebar.html:39 -#: templates/InvenTree/index.html:308 templates/InvenTree/search.html:220 +#: templates/InvenTree/index.html:307 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:55 #: templates/js/translated/search.js:249 templates/navbar.html:62 #: users/models.py:44 @@ -3995,7 +4002,7 @@ msgid "New Sales Order" msgstr "新建销售订单" #: company/templates/company/detail.html:173 -#: templates/js/translated/build.js:1915 +#: templates/js/translated/build.js:1919 msgid "Assigned Stock" msgstr "" @@ -4048,7 +4055,7 @@ msgid "Supplier List" msgstr "供应商列表" #: company/templates/company/manufacturer_part.html:15 company/views.py:38 -#: templates/InvenTree/search.html:181 templates/navbar.html:49 +#: templates/InvenTree/search.html:180 templates/navbar.html:49 msgid "Manufacturers" msgstr "制造商" @@ -4080,7 +4087,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:32 #: part/admin.py:60 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/search.html:191 templates/navbar.html:48 +#: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "供应商" @@ -4117,7 +4124,7 @@ msgid "Delete parameters" msgstr "删除参数" #: company/templates/company/manufacturer_part.html:226 -#: part/templates/part/detail.html:871 +#: part/templates/part/detail.html:869 msgid "Add Parameter" msgstr "添加参数" @@ -4144,11 +4151,11 @@ msgid "Contacts" msgstr "联系人" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:683 +#: company/templates/company/supplier_part.html:24 stock/models.py:684 #: stock/templates/stock/item_base.html:234 #: templates/js/translated/company.js:1195 #: templates/js/translated/purchase_order.js:708 -#: templates/js/translated/stock.js:1977 +#: templates/js/translated/stock.js:1980 msgid "Supplier Part" msgstr "供应商商品" @@ -4229,7 +4236,7 @@ msgstr "" msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:354 +#: company/templates/company/supplier_part.html:352 msgid "Update Part Availability" msgstr "" @@ -4241,7 +4248,7 @@ msgstr "" #: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1000 -#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2475 +#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2478 #: users/models.py:41 msgid "Stock Items" msgstr "库存项" @@ -4258,7 +4265,7 @@ msgstr "新增供应商" msgid "New Manufacturer" msgstr "新建制造商" -#: company/views.py:44 templates/InvenTree/search.html:211 +#: company/views.py:44 templates/InvenTree/search.html:210 #: templates/navbar.html:60 msgid "Customers" msgstr "客户信息" @@ -4359,9 +4366,9 @@ msgstr "" #: order/admin.py:30 order/models.py:69 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 -#: templates/js/translated/order.js:302 +#: templates/js/translated/order.js:309 #: templates/js/translated/purchase_order.js:2052 -#: templates/js/translated/sales_order.js:1778 +#: templates/js/translated/sales_order.js:1797 msgid "Total Price" msgstr "" @@ -4369,7 +4376,7 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:1440 order/models.py:1169 order/models.py:1253 +#: order/api.py:1449 order/models.py:1175 order/models.py:1259 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4379,11 +4386,11 @@ msgstr "" #: templates/js/translated/purchase_order.js:114 #: templates/js/translated/purchase_order.js:709 #: templates/js/translated/purchase_order.js:1596 -#: templates/js/translated/stock.js:1957 templates/js/translated/stock.js:2605 +#: templates/js/translated/stock.js:1960 templates/js/translated/stock.js:2608 msgid "Purchase Order" msgstr "" -#: order/api.py:1444 +#: order/api.py:1453 templates/js/translated/sales_order.js:997 msgid "Unknown" msgstr "" @@ -4421,7 +4428,7 @@ msgstr "描述 (可选)" msgid "Select project code for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:232 order/models.py:1091 order/models.py:1439 +#: order/models.py:232 order/models.py:1091 order/models.py:1451 msgid "Link to external page" msgstr "" @@ -4468,15 +4475,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:399 order/models.py:1736 +#: order/models.py:399 order/models.py:1758 msgid "Issue Date" msgstr "" -#: order/models.py:400 order/models.py:1737 +#: order/models.py:400 order/models.py:1759 msgid "Date order was issued" msgstr "" -#: order/models.py:406 order/models.py:1743 +#: order/models.py:406 order/models.py:1765 msgid "Date order was completed" msgstr "" @@ -4492,17 +4499,17 @@ msgstr "数量必须大于0" msgid "Company to which the items are being sold" msgstr "向其出售该商品的公司" -#: order/models.py:796 order/models.py:1730 +#: order/models.py:796 order/models.py:1752 msgid "Customer Reference " msgstr "" -#: order/models.py:796 order/models.py:1731 +#: order/models.py:796 order/models.py:1753 msgid "Customer order reference code" msgstr "" -#: order/models.py:798 order/models.py:1399 -#: templates/js/translated/sales_order.js:791 -#: templates/js/translated/sales_order.js:972 +#: order/models.py:798 order/models.py:1405 +#: templates/js/translated/sales_order.js:798 +#: templates/js/translated/sales_order.js:979 msgid "Shipment Date" msgstr "" @@ -4520,7 +4527,7 @@ msgstr "" msgid "Only an open order can be marked as complete" msgstr "构建订单已准备好标记为已完成" -#: order/models.py:861 templates/js/translated/sales_order.js:451 +#: order/models.py:861 templates/js/translated/sales_order.js:458 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" @@ -4544,37 +4551,43 @@ msgstr "" msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1114 +#: order/models.py:1115 +#, fuzzy +#| msgid "Description (optional)" +msgid "Line item description (optional)" +msgstr "描述 (可选)" + +#: order/models.py:1120 msgid "Context" msgstr "" -#: order/models.py:1115 +#: order/models.py:1121 msgid "Additional context for this line" msgstr "" -#: order/models.py:1124 +#: order/models.py:1130 msgid "Unit price" msgstr "" -#: order/models.py:1154 +#: order/models.py:1160 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1162 +#: order/models.py:1168 msgid "deleted" msgstr "" -#: order/models.py:1168 order/models.py:1253 order/models.py:1294 -#: order/models.py:1393 order/models.py:1526 order/models.py:1883 -#: order/models.py:1930 templates/js/translated/sales_order.js:1422 +#: order/models.py:1174 order/models.py:1259 order/models.py:1300 +#: order/models.py:1399 order/models.py:1548 order/models.py:1905 +#: order/models.py:1952 templates/js/translated/sales_order.js:1441 msgid "Order" msgstr "" -#: order/models.py:1187 +#: order/models.py:1193 msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:1194 order/templates/order/order_base.html:200 +#: order/models.py:1200 order/templates/order/order_base.html:200 #: templates/js/translated/part.js:1527 templates/js/translated/part.js:1559 #: templates/js/translated/purchase_order.js:1235 #: templates/js/translated/purchase_order.js:2096 @@ -4584,340 +4597,348 @@ msgstr "供应商商品" msgid "Received" msgstr "" -#: order/models.py:1195 +#: order/models.py:1201 msgid "Number of items received" msgstr "" -#: order/models.py:1202 stock/models.py:814 stock/serializers.py:251 +#: order/models.py:1208 stock/models.py:823 stock/serializers.py:252 #: stock/templates/stock/item_base.html:184 -#: templates/js/translated/stock.js:2008 +#: templates/js/translated/stock.js:2011 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:1203 +#: order/models.py:1209 msgid "Unit purchase price" msgstr "" -#: order/models.py:1216 +#: order/models.py:1222 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1282 +#: order/models.py:1288 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1287 +#: order/models.py:1293 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1313 part/templates/part/part_pricing.html:107 +#: order/models.py:1319 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:926 msgid "Sale Price" msgstr "销售价格" -#: order/models.py:1314 +#: order/models.py:1320 msgid "Unit sale price" msgstr "" -#: order/models.py:1324 +#: order/models.py:1330 msgid "Shipped quantity" msgstr "" -#: order/models.py:1400 +#: order/models.py:1406 msgid "Date of shipment" msgstr "" -#: order/models.py:1407 +#: order/models.py:1411 templates/js/translated/sales_order.js:991 +msgid "Delivery Date" +msgstr "" + +#: order/models.py:1412 +msgid "Date of delivery of shipment" +msgstr "" + +#: order/models.py:1419 msgid "Checked By" msgstr "" -#: order/models.py:1408 +#: order/models.py:1420 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1415 order/models.py:1602 order/serializers.py:1245 -#: order/serializers.py:1373 templates/js/translated/model_renderers.js:412 +#: order/models.py:1427 order/models.py:1624 order/serializers.py:1249 +#: order/serializers.py:1377 templates/js/translated/model_renderers.js:412 msgid "Shipment" msgstr "" -#: order/models.py:1416 +#: order/models.py:1428 msgid "Shipment number" msgstr "" -#: order/models.py:1424 +#: order/models.py:1436 msgid "Tracking Number" msgstr "" -#: order/models.py:1425 +#: order/models.py:1437 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1432 +#: order/models.py:1444 msgid "Invoice Number" msgstr "" -#: order/models.py:1433 +#: order/models.py:1445 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1451 +#: order/models.py:1467 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1454 +#: order/models.py:1470 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1561 order/models.py:1563 +#: order/models.py:1583 order/models.py:1585 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1567 +#: order/models.py:1589 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1569 +#: order/models.py:1591 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1572 +#: order/models.py:1594 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1582 order/serializers.py:1107 +#: order/models.py:1604 order/serializers.py:1111 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1585 +#: order/models.py:1607 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1586 +#: order/models.py:1608 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1594 +#: order/models.py:1616 msgid "Line" msgstr "" -#: order/models.py:1603 +#: order/models.py:1625 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1616 order/models.py:1891 +#: order/models.py:1638 order/models.py:1913 #: templates/js/translated/return_order.js:686 msgid "Item" msgstr "" -#: order/models.py:1617 +#: order/models.py:1639 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1620 +#: order/models.py:1642 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1700 +#: order/models.py:1722 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order reference" msgstr "相关生产订单" -#: order/models.py:1714 +#: order/models.py:1736 #, fuzzy #| msgid "Company from which the items are being ordered" msgid "Company from which items are being returned" msgstr "订购该商品的公司" -#: order/models.py:1725 +#: order/models.py:1747 msgid "Return order status" msgstr "" -#: order/models.py:1876 +#: order/models.py:1898 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1884 order/models.py:1930 +#: order/models.py:1906 order/models.py:1952 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 #: templates/js/translated/return_order.js:249 -#: templates/js/translated/stock.js:2639 +#: templates/js/translated/stock.js:2642 #, fuzzy #| msgid "Returned" msgid "Return Order" msgstr "已退回" -#: order/models.py:1892 +#: order/models.py:1914 #, fuzzy #| msgid "Returned from customer" msgid "Select item to return from customer" msgstr "从客户退货" -#: order/models.py:1897 +#: order/models.py:1919 msgid "Received Date" msgstr "" -#: order/models.py:1898 +#: order/models.py:1920 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1909 templates/js/translated/return_order.js:697 +#: order/models.py:1931 templates/js/translated/return_order.js:697 #: templates/js/translated/table_filters.js:89 msgid "Outcome" msgstr "" -#: order/models.py:1909 +#: order/models.py:1931 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1915 +#: order/models.py:1937 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:245 +#: order/serializers.py:246 msgid "Order cannot be cancelled" msgstr "无法取消订单" -#: order/serializers.py:260 order/serializers.py:1125 +#: order/serializers.py:261 order/serializers.py:1129 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:271 order/serializers.py:1136 +#: order/serializers.py:272 order/serializers.py:1140 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:384 +#: order/serializers.py:385 msgid "Order is not open" msgstr "" -#: order/serializers.py:402 +#: order/serializers.py:403 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:420 +#: order/serializers.py:421 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:425 +#: order/serializers.py:426 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:431 +#: order/serializers.py:432 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:433 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:470 order/serializers.py:1213 +#: order/serializers.py:471 order/serializers.py:1217 msgid "Line Item" msgstr "" -#: order/serializers.py:476 +#: order/serializers.py:477 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:486 order/serializers.py:607 order/serializers.py:1584 +#: order/serializers.py:487 order/serializers.py:608 order/serializers.py:1588 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:505 templates/js/translated/purchase_order.js:1059 +#: order/serializers.py:506 templates/js/translated/purchase_order.js:1059 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:513 templates/js/translated/purchase_order.js:1083 +#: order/serializers.py:514 templates/js/translated/purchase_order.js:1083 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:526 templates/js/translated/barcode.js:41 +#: order/serializers.py:527 templates/js/translated/barcode.js:41 msgid "Barcode" msgstr "条形码" -#: order/serializers.py:527 +#: order/serializers.py:528 #, fuzzy #| msgid "Scan Barcode" msgid "Scanned barcode" msgstr "扫描条形码" -#: order/serializers.py:543 +#: order/serializers.py:544 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:570 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:623 order/serializers.py:1599 +#: order/serializers.py:624 order/serializers.py:1603 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:640 +#: order/serializers.py:641 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:651 +#: order/serializers.py:652 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:950 +#: order/serializers.py:951 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1005 +#: order/serializers.py:1008 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1068 order/serializers.py:1222 +#: order/serializers.py:1072 order/serializers.py:1226 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1090 +#: order/serializers.py:1094 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1235 +#: order/serializers.py:1239 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1257 order/serializers.py:1381 +#: order/serializers.py:1261 order/serializers.py:1385 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1260 order/serializers.py:1384 +#: order/serializers.py:1264 order/serializers.py:1388 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1314 +#: order/serializers.py:1318 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1324 +#: order/serializers.py:1328 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1550 +#: order/serializers.py:1554 msgid "Return order line item" msgstr "" -#: order/serializers.py:1557 +#: order/serializers.py:1561 #, fuzzy #| msgid "Build output does not match Build Order" msgid "Line item does not match return order" msgstr "生产产出与订单不匹配" -#: order/serializers.py:1560 +#: order/serializers.py:1564 #, fuzzy #| msgid "This build output has already been completed" msgid "Line item has already been received" msgstr "此生产产出已经完成" -#: order/serializers.py:1592 +#: order/serializers.py:1596 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1673 +#: order/serializers.py:1677 #, fuzzy #| msgid "Uses default currency" msgid "Line price currency" @@ -5114,11 +5135,11 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:102 templates/js/translated/build.js:482 -#: templates/js/translated/build.js:2287 +#: templates/js/translated/build.js:2291 #: templates/js/translated/purchase_order.js:653 #: templates/js/translated/purchase_order.js:1165 #: templates/js/translated/return_order.js:474 -#: templates/js/translated/sales_order.js:1045 +#: templates/js/translated/sales_order.js:1064 #: templates/js/translated/stock.js:645 templates/js/translated/stock.js:814 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -5236,7 +5257,7 @@ msgstr "" #: order/templates/order/return_order_base.html:139 #: order/templates/order/sales_order_base.html:152 #: templates/js/translated/return_order.js:277 -#: templates/js/translated/sales_order.js:745 +#: templates/js/translated/sales_order.js:752 msgid "Customer Reference" msgstr "" @@ -5249,7 +5270,7 @@ msgstr "" #: templates/js/translated/part.js:1012 #: templates/js/translated/purchase_order.js:1671 #: templates/js/translated/return_order.js:349 -#: templates/js/translated/sales_order.js:803 +#: templates/js/translated/sales_order.js:810 msgid "Total Cost" msgstr "" @@ -5283,7 +5304,7 @@ msgid "Ship Items" msgstr "匹配项" #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/sales_order.js:429 +#: templates/js/translated/sales_order.js:436 msgid "Complete Sales Order" msgstr "" @@ -5314,13 +5335,13 @@ msgid "Sales Order Items" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:333 +#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:332 msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:75 #: templates/attachment_table.html:6 templates/js/translated/bom.js:1232 -#: templates/js/translated/build.js:2188 +#: templates/js/translated/build.js:2192 msgid "Actions" msgstr "" @@ -5350,12 +5371,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:273 part/models.py:3468 part/tasks.py:285 +#: part/admin.py:33 part/admin.py:273 part/models.py:3469 part/tasks.py:285 #: stock/admin.py:101 msgid "Part ID" msgstr "商品ID" -#: part/admin.py:34 part/admin.py:275 part/models.py:3472 part/tasks.py:286 +#: part/admin.py:34 part/admin.py:275 part/models.py:3473 part/tasks.py:286 #: stock/admin.py:102 msgid "Part Name" msgstr "" @@ -5364,19 +5385,19 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:885 part/templates/part/part_base.html:271 +#: part/admin.py:36 part/models.py:886 part/templates/part/part_base.html:271 #: templates/js/translated/part.js:1166 templates/js/translated/part.js:1880 -#: templates/js/translated/stock.js:1756 +#: templates/js/translated/stock.js:1759 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:892 part/templates/part/part_base.html:279 +#: part/admin.py:37 part/models.py:893 part/templates/part/part_base.html:279 #: report/models.py:178 templates/js/translated/part.js:1171 #: templates/js/translated/part.js:1886 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:198 part/models.py:871 +#: part/admin.py:38 part/admin.py:198 part/models.py:872 #: part/templates/part/category.html:93 part/templates/part/part_base.html:300 msgid "Keywords" msgstr "关键词" @@ -5397,11 +5418,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:860 part/templates/part/part_base.html:179 +#: part/admin.py:46 part/models.py:861 part/templates/part/part_base.html:179 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:976 part/templates/part/part_base.html:205 +#: part/admin.py:47 part/models.py:977 part/templates/part/part_base.html:205 msgid "Minimum Stock" msgstr "最低库存" @@ -5412,7 +5433,7 @@ msgid "In Stock" msgstr "" #: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212 -#: templates/js/translated/bom.js:1163 templates/js/translated/build.js:2130 +#: templates/js/translated/bom.js:1163 templates/js/translated/build.js:2134 #: templates/js/translated/part.js:653 templates/js/translated/part.js:1772 #: templates/js/translated/table_filters.js:136 msgid "On Order" @@ -5422,9 +5443,9 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:64 templates/js/translated/build.js:2142 -#: templates/js/translated/build.js:2404 templates/js/translated/build.js:2989 -#: templates/js/translated/sales_order.js:1857 +#: part/admin.py:64 templates/js/translated/build.js:2146 +#: templates/js/translated/build.js:2408 templates/js/translated/build.js:2993 +#: templates/js/translated/sales_order.js:1876 #: templates/js/translated/table_filters.js:473 msgid "Allocated" msgstr "" @@ -5434,11 +5455,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2911 templates/js/translated/part.js:909 +#: part/admin.py:66 part/models.py:2912 templates/js/translated/part.js:909 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2917 templates/js/translated/part.js:919 +#: part/admin.py:67 part/models.py:2918 templates/js/translated/part.js:919 msgid "Maximum Cost" msgstr "" @@ -5455,7 +5476,7 @@ msgstr "" msgid "Category Path" msgstr "类别路径" -#: part/admin.py:202 part/models.py:388 part/templates/part/cat_link.html:3 +#: part/admin.py:202 part/models.py:389 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:23 part/templates/part/category.html:140 #: part/templates/part/category.html:160 #: part/templates/part/category_sidebar.html:9 @@ -5478,7 +5499,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:274 part/models.py:3476 +#: part/admin.py:274 part/models.py:3477 msgid "Part IPN" msgstr "" @@ -5520,7 +5541,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:175 part/models.py:124 part/models.py:919 +#: part/bom.py:175 part/models.py:124 part/models.py:920 #: part/templates/part/category.html:115 part/templates/part/part_base.html:369 msgid "Default Location" msgstr "默认仓储地点" @@ -5530,7 +5551,7 @@ msgid "Total Stock" msgstr "" #: part/bom.py:177 part/templates/part/part_base.html:194 -#: templates/js/translated/sales_order.js:1824 +#: templates/js/translated/sales_order.js:1843 msgid "Available Stock" msgstr "可用库存" @@ -5538,7 +5559,7 @@ msgstr "可用库存" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:72 part/models.py:3417 part/templates/part/category.html:16 +#: part/models.py:72 part/models.py:3418 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" @@ -5553,7 +5574,7 @@ msgstr "商品类别" msgid "Default location for parts in this category" msgstr "此类别商品的默认仓储地点" -#: part/models.py:130 stock/models.py:124 templates/js/translated/stock.js:2481 +#: part/models.py:130 stock/models.py:124 templates/js/translated/stock.js:2484 #: templates/js/translated/table_filters.js:205 #: templates/js/translated/table_filters.js:225 msgid "Structural" @@ -5583,63 +5604,63 @@ msgstr "" msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:471 +#: part/models.py:472 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:513 part/models.py:525 +#: part/models.py:514 part/models.py:526 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:597 +#: part/models.py:598 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN 必须匹配正则表达式 {pat}" -#: part/models.py:668 +#: part/models.py:669 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:799 +#: part/models.py:800 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:804 +#: part/models.py:805 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:818 +#: part/models.py:819 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:842 part/models.py:3473 +#: part/models.py:843 part/models.py:3474 msgid "Part name" msgstr "商品名称" -#: part/models.py:848 +#: part/models.py:849 msgid "Is Template" msgstr "" -#: part/models.py:849 +#: part/models.py:850 msgid "Is this part a template part?" msgstr "" -#: part/models.py:859 +#: part/models.py:860 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:866 +#: part/models.py:867 #, fuzzy #| msgid "Description (optional)" msgid "Part description (optional)" msgstr "描述 (可选)" -#: part/models.py:872 +#: part/models.py:873 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:879 part/models.py:3179 part/models.py:3416 +#: part/models.py:880 part/models.py:3180 part/models.py:3417 #: part/serializers.py:855 part/templates/part/part_base.html:262 #: templates/InvenTree/settings/settings_staff_js.html:204 #: templates/js/translated/notification.js:50 @@ -5647,249 +5668,249 @@ msgstr "提高搜索结果可见性的关键字" msgid "Category" msgstr "类别" -#: part/models.py:880 +#: part/models.py:881 msgid "Part category" msgstr "商品类别" -#: part/models.py:886 +#: part/models.py:887 msgid "Internal Part Number" msgstr "内部商品编号" -#: part/models.py:891 +#: part/models.py:892 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:917 +#: part/models.py:918 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:962 part/templates/part/part_base.html:378 +#: part/models.py:963 part/templates/part/part_base.html:378 msgid "Default Supplier" msgstr "" -#: part/models.py:963 +#: part/models.py:964 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:970 +#: part/models.py:971 msgid "Default Expiry" msgstr "" -#: part/models.py:971 +#: part/models.py:972 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:977 +#: part/models.py:978 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:984 +#: part/models.py:985 msgid "Units of measure for this part" msgstr "" -#: part/models.py:990 +#: part/models.py:991 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:996 +#: part/models.py:997 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1002 +#: part/models.py:1003 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1007 +#: part/models.py:1008 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1012 +#: part/models.py:1013 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:1017 +#: part/models.py:1018 msgid "Is this part active?" msgstr "" -#: part/models.py:1022 +#: part/models.py:1023 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:1024 +#: part/models.py:1025 msgid "BOM checksum" msgstr "" -#: part/models.py:1024 +#: part/models.py:1025 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1027 +#: part/models.py:1028 msgid "BOM checked by" msgstr "" -#: part/models.py:1029 +#: part/models.py:1030 msgid "BOM checked date" msgstr "" -#: part/models.py:1033 +#: part/models.py:1034 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1035 +#: part/models.py:1036 msgid "User responsible for this part" msgstr "" -#: part/models.py:1039 part/templates/part/part_base.html:341 -#: stock/templates/stock/item_base.html:441 +#: part/models.py:1040 part/templates/part/part_base.html:341 +#: stock/templates/stock/item_base.html:447 #: templates/js/translated/part.js:1972 msgid "Last Stocktake" msgstr "" -#: part/models.py:1909 +#: part/models.py:1910 msgid "Sell multiple" msgstr "" -#: part/models.py:2834 +#: part/models.py:2835 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2851 +#: part/models.py:2852 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2852 +#: part/models.py:2853 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2857 +#: part/models.py:2858 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2858 +#: part/models.py:2859 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2863 +#: part/models.py:2864 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2864 +#: part/models.py:2865 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2870 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2870 +#: part/models.py:2871 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2876 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2876 +#: part/models.py:2877 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2881 +#: part/models.py:2882 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2882 +#: part/models.py:2883 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2887 +#: part/models.py:2888 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2888 +#: part/models.py:2889 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2893 +#: part/models.py:2894 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2894 +#: part/models.py:2895 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2899 +#: part/models.py:2900 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2900 +#: part/models.py:2901 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2905 +#: part/models.py:2906 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2906 +#: part/models.py:2907 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2912 +#: part/models.py:2913 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2918 +#: part/models.py:2919 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2924 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2924 +#: part/models.py:2925 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2929 +#: part/models.py:2930 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2930 +#: part/models.py:2931 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2935 +#: part/models.py:2936 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2936 +#: part/models.py:2937 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2941 +#: part/models.py:2942 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2942 +#: part/models.py:2943 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2961 +#: part/models.py:2962 msgid "Part for stocktake" msgstr "" -#: part/models.py:2966 +#: part/models.py:2967 msgid "Item Count" msgstr "" -#: part/models.py:2967 +#: part/models.py:2968 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2974 +#: part/models.py:2975 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2978 part/models.py:3061 +#: part/models.py:2979 part/models.py:3062 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin.html:62 @@ -5898,307 +5919,307 @@ msgstr "" #: templates/js/translated/part.js:1025 templates/js/translated/pricing.js:798 #: templates/js/translated/pricing.js:919 #: templates/js/translated/purchase_order.js:1650 -#: templates/js/translated/stock.js:2519 +#: templates/js/translated/stock.js:2522 msgid "Date" msgstr "" -#: part/models.py:2979 +#: part/models.py:2980 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:2987 +#: part/models.py:2988 msgid "Additional notes" msgstr "" -#: part/models.py:2995 +#: part/models.py:2996 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3000 +#: part/models.py:3001 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3001 +#: part/models.py:3002 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3006 +#: part/models.py:3007 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3007 +#: part/models.py:3008 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3068 templates/InvenTree/settings/settings_staff_js.html:428 +#: part/models.py:3069 templates/InvenTree/settings/settings_staff_js.html:428 msgid "Report" msgstr "" -#: part/models.py:3069 +#: part/models.py:3070 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3074 templates/InvenTree/settings/settings_staff_js.html:435 +#: part/models.py:3075 templates/InvenTree/settings/settings_staff_js.html:435 msgid "Part Count" msgstr "" -#: part/models.py:3075 +#: part/models.py:3076 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3083 +#: part/models.py:3084 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3219 +#: part/models.py:3220 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3236 +#: part/models.py:3237 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3256 templates/js/translated/part.js:2462 +#: part/models.py:3257 templates/js/translated/part.js:2462 msgid "Test Name" msgstr "" -#: part/models.py:3257 +#: part/models.py:3258 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3262 +#: part/models.py:3263 msgid "Test Description" msgstr "" -#: part/models.py:3263 +#: part/models.py:3264 msgid "Enter description for this test" msgstr "" -#: part/models.py:3268 templates/js/translated/part.js:2471 +#: part/models.py:3269 templates/js/translated/part.js:2471 #: templates/js/translated/table_filters.js:419 msgid "Required" msgstr "" -#: part/models.py:3269 +#: part/models.py:3270 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3274 templates/js/translated/part.js:2479 +#: part/models.py:3275 templates/js/translated/part.js:2479 msgid "Requires Value" msgstr "" -#: part/models.py:3275 +#: part/models.py:3276 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3280 templates/js/translated/part.js:2486 +#: part/models.py:3281 templates/js/translated/part.js:2486 msgid "Requires Attachment" msgstr "" -#: part/models.py:3281 +#: part/models.py:3282 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3322 +#: part/models.py:3323 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3330 +#: part/models.py:3331 msgid "Parameter Name" msgstr "" -#: part/models.py:3334 +#: part/models.py:3335 msgid "Parameter Units" msgstr "" -#: part/models.py:3339 +#: part/models.py:3340 msgid "Parameter description" msgstr "" -#: part/models.py:3372 +#: part/models.py:3373 msgid "Parent Part" msgstr "" -#: part/models.py:3374 part/models.py:3422 part/models.py:3423 +#: part/models.py:3375 part/models.py:3423 part/models.py:3424 #: templates/InvenTree/settings/settings_staff_js.html:199 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3376 +#: part/models.py:3377 msgid "Data" msgstr "" -#: part/models.py:3376 +#: part/models.py:3377 msgid "Parameter Value" msgstr "" -#: part/models.py:3427 templates/InvenTree/settings/settings_staff_js.html:208 +#: part/models.py:3428 templates/InvenTree/settings/settings_staff_js.html:208 msgid "Default Value" msgstr "默认值" -#: part/models.py:3428 +#: part/models.py:3429 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3465 +#: part/models.py:3466 msgid "Part ID or part name" msgstr "" -#: part/models.py:3469 +#: part/models.py:3470 msgid "Unique part ID value" msgstr "" -#: part/models.py:3477 +#: part/models.py:3478 msgid "Part IPN value" msgstr "" -#: part/models.py:3480 +#: part/models.py:3481 msgid "Level" msgstr "" -#: part/models.py:3481 +#: part/models.py:3482 msgid "BOM level" msgstr "" -#: part/models.py:3565 +#: part/models.py:3566 msgid "Select parent part" msgstr "" -#: part/models.py:3573 +#: part/models.py:3574 msgid "Sub part" msgstr "" -#: part/models.py:3574 +#: part/models.py:3575 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3580 +#: part/models.py:3581 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3584 part/templates/part/upload_bom.html:58 +#: part/models.py:3585 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:941 templates/js/translated/bom.js:994 -#: templates/js/translated/build.js:2052 +#: templates/js/translated/build.js:2056 #: templates/js/translated/table_filters.js:152 #: templates/js/translated/table_filters.js:181 #: templates/js/translated/table_filters.js:485 msgid "Optional" msgstr "可选项" -#: part/models.py:3585 +#: part/models.py:3586 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3590 templates/js/translated/bom.js:937 -#: templates/js/translated/bom.js:1003 templates/js/translated/build.js:2043 +#: part/models.py:3591 templates/js/translated/bom.js:937 +#: templates/js/translated/bom.js:1003 templates/js/translated/build.js:2047 #: templates/js/translated/table_filters.js:156 #: templates/js/translated/table_filters.js:481 msgid "Consumable" msgstr "" -#: part/models.py:3591 +#: part/models.py:3592 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3595 part/templates/part/upload_bom.html:55 +#: part/models.py:3596 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3596 +#: part/models.py:3597 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3599 +#: part/models.py:3600 msgid "BOM item reference" msgstr "" -#: part/models.py:3602 +#: part/models.py:3603 msgid "BOM item notes" msgstr "" -#: part/models.py:3606 +#: part/models.py:3607 msgid "Checksum" msgstr "" -#: part/models.py:3606 +#: part/models.py:3607 msgid "BOM line checksum" msgstr "" -#: part/models.py:3611 templates/js/translated/table_filters.js:140 +#: part/models.py:3612 templates/js/translated/table_filters.js:140 msgid "Validated" msgstr "" -#: part/models.py:3612 +#: part/models.py:3613 #, fuzzy #| msgid "Some stock items have been overallocated" msgid "This BOM item has been validated" msgstr "一些库存项已被过度分配" -#: part/models.py:3617 part/templates/part/upload_bom.html:57 +#: part/models.py:3618 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1020 #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:177 msgid "Gets inherited" msgstr "" -#: part/models.py:3618 +#: part/models.py:3619 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3623 part/templates/part/upload_bom.html:56 +#: part/models.py:3624 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1012 msgid "Allow Variants" msgstr "" -#: part/models.py:3624 +#: part/models.py:3625 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3710 stock/models.py:576 +#: part/models.py:3711 stock/models.py:577 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3719 part/models.py:3721 +#: part/models.py:3720 part/models.py:3722 msgid "Sub part must be specified" msgstr "" -#: part/models.py:3837 +#: part/models.py:3838 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3858 +#: part/models.py:3859 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3871 +#: part/models.py:3872 msgid "Parent BOM item" msgstr "" -#: part/models.py:3879 +#: part/models.py:3880 msgid "Substitute part" msgstr "" -#: part/models.py:3894 +#: part/models.py:3895 msgid "Part 1" msgstr "" -#: part/models.py:3898 +#: part/models.py:3899 msgid "Part 2" msgstr "" -#: part/models.py:3898 +#: part/models.py:3899 msgid "Select Related Part" msgstr "" -#: part/models.py:3916 +#: part/models.py:3917 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:3920 +#: part/models.py:3921 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:162 part/serializers.py:185 stock/serializers.py:256 +#: part/serializers.py:162 part/serializers.py:185 stock/serializers.py:257 msgid "Purchase currency of this stock item" msgstr "" @@ -6604,7 +6625,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:130 templates/InvenTree/settings/part_stocktake.html:29 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/stock.js:1913 users/models.py:39 +#: templates/js/translated/stock.js:1916 users/models.py:39 msgid "Stocktake" msgstr "" @@ -6745,13 +6766,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312 -#: templates/js/translated/order.js:112 templates/js/translated/tables.js:183 +#: templates/js/translated/order.js:113 templates/js/translated/tables.js:183 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313 -#: templates/js/translated/order.js:113 +#: templates/js/translated/order.js:114 msgid "Select file format" msgstr "" @@ -6859,12 +6880,12 @@ msgid "Show Part Details" msgstr "" #: part/templates/part/part_base.html:220 -#: stock/templates/stock/item_base.html:378 +#: stock/templates/stock/item_base.html:384 msgid "Allocated to Build Orders" msgstr "" #: part/templates/part/part_base.html:229 -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:377 msgid "Allocated to Sales Orders" msgstr "" @@ -6978,7 +6999,7 @@ msgstr "" #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:1182 templates/js/translated/part.js:1769 #: templates/js/translated/part.js:1925 templates/js/translated/stock.js:986 -#: templates/js/translated/stock.js:1790 templates/navbar.html:31 +#: templates/js/translated/stock.js:1793 templates/navbar.html:31 msgid "Stock" msgstr "库存" @@ -7008,10 +7029,10 @@ msgid "Refresh Part Pricing" msgstr "" #: part/templates/part/prices.html:25 stock/admin.py:129 -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:442 #: templates/js/translated/company.js:1291 #: templates/js/translated/company.js:1301 -#: templates/js/translated/stock.js:1943 +#: templates/js/translated/stock.js:1946 msgid "Last Updated" msgstr "" @@ -7079,7 +7100,7 @@ msgstr "" msgid "No Stock" msgstr "" -#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:168 +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:167 msgid "Low Stock" msgstr "" @@ -7496,11 +7517,11 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:30 #: report/templates/report/inventree_so_report_base.html:30 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:513 +#: templates/js/translated/order.js:298 templates/js/translated/pricing.js:513 #: templates/js/translated/pricing.js:582 #: templates/js/translated/pricing.js:806 #: templates/js/translated/purchase_order.js:2042 -#: templates/js/translated/sales_order.js:1768 +#: templates/js/translated/sales_order.js:1787 msgid "Unit Price" msgstr "单价" @@ -7515,21 +7536,21 @@ msgstr "额外的生产备注" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 #: templates/js/translated/purchase_order.js:1944 -#: templates/js/translated/sales_order.js:1743 +#: templates/js/translated/sales_order.js:1762 msgid "Total" msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:724 stock/templates/stock/item_base.html:312 -#: templates/js/translated/build.js:472 templates/js/translated/build.js:1362 -#: templates/js/translated/build.js:1928 +#: stock/models.py:725 stock/templates/stock/item_base.html:312 +#: templates/js/translated/build.js:472 templates/js/translated/build.js:1366 +#: templates/js/translated/build.js:1932 #: templates/js/translated/model_renderers.js:198 #: templates/js/translated/return_order.js:508 #: templates/js/translated/return_order.js:688 -#: templates/js/translated/sales_order.js:264 -#: templates/js/translated/sales_order.js:1548 -#: templates/js/translated/sales_order.js:1633 +#: templates/js/translated/sales_order.js:267 +#: templates/js/translated/sales_order.js:1567 +#: templates/js/translated/sales_order.js:1652 #: templates/js/translated/stock.js:527 msgid "Serial Number" msgstr "序列号" @@ -7543,12 +7564,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2216 templates/js/translated/stock.js:1383 +#: stock/models.py:2240 templates/js/translated/stock.js:1383 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2222 +#: stock/models.py:2246 msgid "Result" msgstr "" @@ -7577,7 +7598,7 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:168 #: stock/admin.py:104 templates/js/translated/stock.js:631 -#: templates/js/translated/stock.js:802 templates/js/translated/stock.js:2810 +#: templates/js/translated/stock.js:802 templates/js/translated/stock.js:2813 msgid "Serial" msgstr "" @@ -7620,7 +7641,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:114 stock/models.py:707 +#: stock/admin.py:114 stock/models.py:708 #: stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" @@ -7647,54 +7668,54 @@ msgstr "" msgid "Delete on Deplete" msgstr "删除模板" -#: stock/admin.py:131 stock/models.py:780 -#: stock/templates/stock/item_base.html:423 -#: templates/js/translated/stock.js:1927 +#: stock/admin.py:131 stock/models.py:789 +#: stock/templates/stock/item_base.html:429 +#: templates/js/translated/stock.js:1930 msgid "Expiry Date" msgstr "" -#: stock/api.py:418 templates/js/translated/table_filters.js:369 +#: stock/api.py:419 templates/js/translated/table_filters.js:369 msgid "External Location" msgstr "" -#: stock/api.py:579 +#: stock/api.py:580 msgid "Quantity is required" msgstr "" -#: stock/api.py:586 +#: stock/api.py:587 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:612 +#: stock/api.py:613 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:621 +#: stock/api.py:622 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:640 +#: stock/api.py:641 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:54 stock/models.py:691 +#: stock/models.py:54 stock/models.py:692 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" #: stock/models.py:55 stock/templates/stock/location.html:177 -#: templates/InvenTree/search.html:167 templates/js/translated/search.js:208 +#: templates/InvenTree/search.html:166 templates/js/translated/search.js:208 #: users/models.py:40 msgid "Stock Locations" msgstr "仓储地点" -#: stock/models.py:118 stock/models.py:819 +#: stock/models.py:118 stock/models.py:828 #: stock/templates/stock/item_base.html:248 msgid "Owner" msgstr "" -#: stock/models.py:119 stock/models.py:820 +#: stock/models.py:119 stock/models.py:829 msgid "Select Owner" msgstr "" @@ -7702,7 +7723,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:132 templates/js/translated/stock.js:2490 +#: stock/models.py:132 templates/js/translated/stock.js:2493 #: templates/js/translated/table_filters.js:209 msgid "External" msgstr "" @@ -7715,213 +7736,225 @@ msgstr "" msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:556 +#: stock/models.py:557 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:582 stock/serializers.py:173 +#: stock/models.py:583 stock/serializers.py:174 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:599 +#: stock/models.py:600 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:609 stock/models.py:618 +#: stock/models.py:610 stock/models.py:619 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:610 +#: stock/models.py:611 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:632 +#: stock/models.py:633 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:638 +#: stock/models.py:639 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:652 +#: stock/models.py:653 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:666 +#: stock/models.py:667 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:676 +#: stock/models.py:677 msgid "Base part" msgstr "" -#: stock/models.py:684 +#: stock/models.py:685 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:694 +#: stock/models.py:695 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:701 +#: stock/models.py:702 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:710 +#: stock/models.py:711 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:726 +#: stock/models.py:727 msgid "Serial number for this item" msgstr "" -#: stock/models.py:740 +#: stock/models.py:741 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:745 +#: stock/models.py:746 msgid "Stock Quantity" msgstr "" -#: stock/models.py:752 +#: stock/models.py:753 msgid "Source Build" msgstr "" -#: stock/models.py:754 +#: stock/models.py:755 msgid "Build for this stock item" msgstr "" -#: stock/models.py:765 +#: stock/models.py:761 stock/templates/stock/item_base.html:364 +#, fuzzy +#| msgid "Issued By" +msgid "Consumed By" +msgstr "发布者" + +#: stock/models.py:763 +#, fuzzy +#| msgid "BuildOrder to which this build is allocated" +msgid "Build order which consumed this stock item" +msgstr "此次生产匹配的订单" + +#: stock/models.py:774 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:768 +#: stock/models.py:777 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:774 +#: stock/models.py:783 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:781 +#: stock/models.py:790 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:796 +#: stock/models.py:805 msgid "Delete on deplete" msgstr "" -#: stock/models.py:796 +#: stock/models.py:805 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:815 +#: stock/models.py:824 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:843 +#: stock/models.py:852 msgid "Converted to part" msgstr "" -#: stock/models.py:1361 +#: stock/models.py:1377 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1367 +#: stock/models.py:1383 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1373 +#: stock/models.py:1389 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1376 +#: stock/models.py:1392 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1379 +#: stock/models.py:1395 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 stock/serializers.py:373 +#: stock/models.py:1402 stock/serializers.py:374 msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/models.py:1457 +#: stock/models.py:1473 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1460 +#: stock/models.py:1476 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1463 +#: stock/models.py:1479 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1466 +#: stock/models.py:1482 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1469 +#: stock/models.py:1485 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1472 +#: stock/models.py:1488 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1479 stock/serializers.py:974 +#: stock/models.py:1495 stock/serializers.py:975 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1483 +#: stock/models.py:1499 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1487 +#: stock/models.py:1503 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1491 +#: stock/models.py:1507 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1660 +#: stock/models.py:1676 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2134 +#: stock/models.py:2158 msgid "Entry notes" msgstr "" -#: stock/models.py:2192 +#: stock/models.py:2216 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2198 +#: stock/models.py:2222 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2217 +#: stock/models.py:2241 msgid "Test name" msgstr "" -#: stock/models.py:2223 +#: stock/models.py:2247 msgid "Test result" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2253 msgid "Test output value" msgstr "" -#: stock/models.py:2236 +#: stock/models.py:2260 msgid "Test result attachment" msgstr "" -#: stock/models.py:2242 +#: stock/models.py:2266 msgid "Test notes" msgstr "" @@ -7929,128 +7962,128 @@ msgstr "" msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:165 +#: stock/serializers.py:166 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:253 +#: stock/serializers.py:254 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:306 +#: stock/serializers.py:307 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:318 +#: stock/serializers.py:319 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:324 +#: stock/serializers.py:325 msgid "Enter serial numbers for new items" msgstr "输入新项目的序列号" -#: stock/serializers.py:335 stock/serializers.py:931 stock/serializers.py:1173 +#: stock/serializers.py:336 stock/serializers.py:932 stock/serializers.py:1174 msgid "Destination stock location" msgstr "目标库存位置" -#: stock/serializers.py:342 +#: stock/serializers.py:343 msgid "Optional note field" msgstr "" -#: stock/serializers.py:352 +#: stock/serializers.py:353 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:413 +#: stock/serializers.py:414 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:426 +#: stock/serializers.py:427 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:433 +#: stock/serializers.py:434 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:470 +#: stock/serializers.py:471 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:475 stock/serializers.py:556 +#: stock/serializers.py:476 stock/serializers.py:557 msgid "Add transaction note (optional)" msgstr "添加交易备注 (可选)" -#: stock/serializers.py:509 +#: stock/serializers.py:510 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:520 +#: stock/serializers.py:521 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:551 +#: stock/serializers.py:552 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:786 +#: stock/serializers.py:787 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:791 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:794 +#: stock/serializers.py:795 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:825 +#: stock/serializers.py:826 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:831 +#: stock/serializers.py:832 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:839 +#: stock/serializers.py:840 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:849 stock/serializers.py:1080 +#: stock/serializers.py:850 stock/serializers.py:1081 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:938 +#: stock/serializers.py:939 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:943 +#: stock/serializers.py:944 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:944 +#: stock/serializers.py:945 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:949 +#: stock/serializers.py:950 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:950 +#: stock/serializers.py:951 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:960 +#: stock/serializers.py:961 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1042 +#: stock/serializers.py:1043 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1070 +#: stock/serializers.py:1071 msgid "Stock transaction notes" msgstr "" @@ -8091,7 +8124,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2957 +#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2960 msgid "Install Stock Item" msgstr "" @@ -8246,79 +8279,79 @@ msgstr "" msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:388 -#: templates/js/translated/build.js:1954 +#: stock/templates/stock/item_base.html:394 +#: templates/js/translated/build.js:1958 msgid "No location set" msgstr "未设置仓储地点" -#: stock/templates/stock/item_base.html:403 +#: stock/templates/stock/item_base.html:409 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:409 +#: stock/templates/stock/item_base.html:415 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:427 +#: stock/templates/stock/item_base.html:433 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:427 +#: stock/templates/stock/item_base.html:433 #: templates/js/translated/table_filters.js:377 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:429 +#: stock/templates/stock/item_base.html:435 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:429 +#: stock/templates/stock/item_base.html:435 #: templates/js/translated/table_filters.js:383 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:445 +#: stock/templates/stock/item_base.html:451 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:497 -#: templates/js/translated/stock.js:1706 +#: stock/templates/stock/item_base.html:503 +#: templates/js/translated/stock.js:1709 #, fuzzy #| msgid "Stock Item" msgid "stock item" msgstr "库存项" -#: stock/templates/stock/item_base.html:522 +#: stock/templates/stock/item_base.html:528 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:531 +#: stock/templates/stock/item_base.html:537 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:542 +#: stock/templates/stock/item_base.html:548 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:606 +#: stock/templates/stock/item_base.html:612 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:609 +#: stock/templates/stock/item_base.html:615 msgid "Warning" msgstr "警告" -#: stock/templates/stock/item_base.html:610 +#: stock/templates/stock/item_base.html:616 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:618 +#: stock/templates/stock/item_base.html:624 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:648 +#: stock/templates/stock/item_base.html:654 msgid "Return to Stock" msgstr "" @@ -8393,7 +8426,7 @@ msgid "New Location" msgstr "新建仓储地点" #: stock/templates/stock/location.html:287 -#: templates/js/translated/stock.js:2279 +#: templates/js/translated/stock.js:2282 #, fuzzy #| msgid "Stock Location" msgid "stock location" @@ -8501,51 +8534,51 @@ msgstr "" msgid "Recently Updated" msgstr "" -#: templates/InvenTree/index.html:181 +#: templates/InvenTree/index.html:180 msgid "Depleted Stock" msgstr "" -#: templates/InvenTree/index.html:194 +#: templates/InvenTree/index.html:193 msgid "Required for Build Orders" msgstr "" -#: templates/InvenTree/index.html:209 +#: templates/InvenTree/index.html:208 msgid "Expired Stock" msgstr "" -#: templates/InvenTree/index.html:223 +#: templates/InvenTree/index.html:222 msgid "Stale Stock" msgstr "" -#: templates/InvenTree/index.html:248 +#: templates/InvenTree/index.html:247 msgid "Build Orders In Progress" msgstr "" -#: templates/InvenTree/index.html:259 +#: templates/InvenTree/index.html:258 msgid "Overdue Build Orders" msgstr "" -#: templates/InvenTree/index.html:279 +#: templates/InvenTree/index.html:278 msgid "Outstanding Purchase Orders" msgstr "" -#: templates/InvenTree/index.html:290 +#: templates/InvenTree/index.html:289 msgid "Overdue Purchase Orders" msgstr "" -#: templates/InvenTree/index.html:311 +#: templates/InvenTree/index.html:310 msgid "Outstanding Sales Orders" msgstr "" -#: templates/InvenTree/index.html:322 +#: templates/InvenTree/index.html:321 msgid "Overdue Sales Orders" msgstr "" -#: templates/InvenTree/index.html:348 +#: templates/InvenTree/index.html:347 msgid "InvenTree News" msgstr "" -#: templates/InvenTree/index.html:350 +#: templates/InvenTree/index.html:349 msgid "Current News" msgstr "" @@ -9032,165 +9065,149 @@ msgstr "销售订单设置" msgid "Stock Settings" msgstr "库存设置" -#: templates/InvenTree/settings/user.html:12 +#: templates/InvenTree/settings/user.html:13 msgid "Account Settings" msgstr "帐户设置" -#: templates/InvenTree/settings/user.html:18 +#: templates/InvenTree/settings/user.html:19 #: templates/account/password_reset_from_key.html:4 #: templates/account/password_reset_from_key.html:7 msgid "Change Password" msgstr "更改密码" -#: templates/InvenTree/settings/user.html:23 +#: templates/InvenTree/settings/user.html:24 #: templates/js/translated/helpers.js:54 templates/js/translated/pricing.js:614 #: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "编辑" -#: templates/InvenTree/settings/user.html:32 +#: templates/InvenTree/settings/user.html:33 msgid "Username" msgstr "用户名" -#: templates/InvenTree/settings/user.html:36 +#: templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "名字" -#: templates/InvenTree/settings/user.html:40 +#: templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "姓氏" -#: templates/InvenTree/settings/user.html:54 +#: templates/InvenTree/settings/user.html:55 msgid "The following email addresses are associated with your account:" msgstr "" -#: templates/InvenTree/settings/user.html:75 +#: templates/InvenTree/settings/user.html:76 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:77 +#: templates/InvenTree/settings/user.html:78 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:79 +#: templates/InvenTree/settings/user.html:80 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:85 +#: templates/InvenTree/settings/user.html:86 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:86 +#: templates/InvenTree/settings/user.html:87 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:96 +#: templates/InvenTree/settings/user.html:97 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." msgstr "" -#: templates/InvenTree/settings/user.html:104 +#: templates/InvenTree/settings/user.html:105 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:109 +#: templates/InvenTree/settings/user.html:110 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:117 -msgid "Social Accounts" -msgstr "" - -#: templates/InvenTree/settings/user.html:122 -msgid "You can sign in to your account using any of the following third party accounts:" -msgstr "" - -#: templates/InvenTree/settings/user.html:158 -msgid "There are no social network accounts connected to this account." -msgstr "" - -#: templates/InvenTree/settings/user.html:164 -msgid "Add a 3rd Party Account" -msgstr "" - -#: templates/InvenTree/settings/user.html:174 +#: templates/InvenTree/settings/user.html:120 msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:179 +#: templates/InvenTree/settings/user.html:125 msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:189 +#: templates/InvenTree/settings/user.html:135 msgid "TOTP" msgstr "" -#: templates/InvenTree/settings/user.html:195 +#: templates/InvenTree/settings/user.html:141 msgid "Static" msgstr "" -#: templates/InvenTree/settings/user.html:204 +#: templates/InvenTree/settings/user.html:150 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: templates/InvenTree/settings/user.html:211 +#: templates/InvenTree/settings/user.html:157 msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:212 +#: templates/InvenTree/settings/user.html:158 msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user.html:160 msgid "Remove multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:222 +#: templates/InvenTree/settings/user.html:168 msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:228 +#: templates/InvenTree/settings/user.html:174 msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:229 +#: templates/InvenTree/settings/user.html:175 msgid "Log Out Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:238 +#: templates/InvenTree/settings/user.html:184 msgid "unknown on unknown" msgstr "" -#: templates/InvenTree/settings/user.html:239 +#: templates/InvenTree/settings/user.html:185 msgid "unknown" msgstr "" -#: templates/InvenTree/settings/user.html:243 +#: templates/InvenTree/settings/user.html:189 msgid "IP Address" msgstr "" -#: templates/InvenTree/settings/user.html:244 +#: templates/InvenTree/settings/user.html:190 msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:245 +#: templates/InvenTree/settings/user.html:191 msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:258 +#: templates/InvenTree/settings/user.html:204 #, python-format msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:260 +#: templates/InvenTree/settings/user.html:206 #, python-format msgid "%(time)s ago" msgstr "" -#: templates/InvenTree/settings/user.html:272 +#: templates/InvenTree/settings/user.html:218 msgid "Do you really want to remove the selected email address?" msgstr "" @@ -9267,6 +9284,28 @@ msgstr "主页设置" msgid "Search Settings" msgstr "搜索设置" +#: templates/InvenTree/settings/user_sso.html:9 +msgid "Single Sign On Accounts" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:16 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:52 +msgid "There are no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:58 +#, fuzzy +#| msgid "Account Settings" +msgid "Add SSO Account" +msgstr "帐户设置" + +#: templates/InvenTree/settings/user_sso.html:67 +msgid "Single Sign On is not enabled for this server" +msgstr "" + #: templates/about.html:9 msgid "InvenTree Version" msgstr "" @@ -9350,7 +9389,7 @@ msgid "This email confirmation link expired or is invalid. Please As a final step, please complete the following form:" msgstr "" +#: templates/socialaccount/snippets/provider_list.html:26 +#, fuzzy +#| msgid "Email backend not configured" +msgid "Provider has not been configured" +msgstr "未配置电子邮件后端" + +#: templates/socialaccount/snippets/provider_list.html:35 +msgid "No SSO providers have been configured" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr ""